@string{aw = "{AW}"}
@string{oopsla = "{OOPSLA}"}
@string{ecoop = "{ECOOP}"}
@string{popl = "{POPL}"}
@string{ftfjp = "{FTfJP}"}
@string{iwaco = "{IWACO}"}
@string{sv = "{S}pringer-{V}erlag"}
@string{fool = "{FOOL}"}
@string{icse = "{ICSE}"}
@string{pldi = "{PLDI}"}
@string{acm = "{ACM} {P}ress"}
@string{lncs = "{LNCS}"}
@string{toplas = "{TOPLAS}"}
@string{jacm = "{JACM}"}
@string{ase = "{ASE}"}
@string{cc = "{CC}"}
@string{jot = "{JOT}"}

@Article{BDFLS04,
  title =	 "Verification of Object-Oriented Programs with
                  Invariants",
  author =	 "Michael Barnett and Robert DeLine and Manuel
                  F{\"a}hndrich and K. Rustan M. Leino and Wolfram
                  Schulte",
  journal =	 jot,
  year =	 2004,
  number =	 6,
  volume =	 3,
  pages =	 "27--56"
}

@InProceedings{BSBR03,
  author =	 "Chandrasekhar Boyapati and Alexandru Salcianu and
                  William {Beebee, Jr.} and Martin Rinard",
  title =	 "Ownership Types for Safe Region-Based Memory
                  Management in {R}eal-{T}ime {J}ava",
  booktitle =	 pldi,
  year =	 2003,
  publisher =	 "ACM Press",
  pages =	 "324--337"
}

@inproceedings{CK10,
  title =	 "Using Ownership to Reason About Inherent Parallelism
                  in Object-Oriented Programs",
  author =	 "Andrew J. Craik and Wayne A. Kelly",
  booktitle =	 cc,
  publisher =	 sv,
  year =	 2010,
  series =	 lncs
}

@Article{DHOH03,
  title =	 "An Empirical Investigation of the Influence of a
                  Type of Side Effects on Program Comprehension",
  author =	 "Jos{\'e} Javier Dolado and Mark Harman and Mari
                  Carmen Otero and Lin Hu",
  journal =	 tse,
  year =	 2003,
  number =	 7,
  volume =	 29,
  pages =	 "665--670"
}

@inproceedings{FMSW08,
  author =	 {Matthew Finifter and Adrian Mettler and Naveen
                  Sastry and David Wagner},
  title =	 "Verifiable functional purity in {Java}",
  booktitle =	 {Proc. CCS},
  year =	 2008,
  isbn =	 {978-1-59593-810-7},
  pages =	 {161--174},
  publisher =	 acm
}

@InProceedings{LM07,
  title =	 "Ownership and Immutability Inference for {UML}-Based
                  Object Access Control",
  author =	 "Yin Liu and Ana Milanova",
  publisher =	 "IEEE Computer Society",
  year =	 2007,
  booktitle =	 icse,
  pages =	 "323--332"
}

@InProceedings{LRZ93,
 title =	"Interprocedural Side Effect Analysis With Pointer
		 Aliasing",
 author =	"William Landi and Barbara G. Ryder and Sean Zhang",
 year = 	"1993",
 booktitle =	"Proceedings of PLDI",
 pages =	"56--67"
}

@InProceedings{LeinoMW2008,
  author =	 "Leino, K. Rustan M. and M{\"u}ller, Peter and
                  Wallenburg, Angela",
  authorASCII =	 "Leino, K. Rustan M. and Muller, Peter and
                  Wallenburg, Angela",
  title =	 "Flexible immutability with frozen objects",
  booktitle =	 {VSTTE2008},
  pages =	 "192--208",
  year =	 2008,
  abstract =	 "Object immutability is a familiar concept that
                  allows safe sharing of objects. Existing language
                  support for immutability is based on immutable
                  classes. However, class-based approaches are
                  restrictive because programmers can neither make
                  instances of arbitrary classes immutable, nor can
                  they control when an instance becomes
                  immutable. These restrictions prevent many
                  interesting applications where objects of mutable
                  classes go through a number of modifications before
                  they become immutable.  \par This paper presents a
                  flexible technique to enforce the immutability of
                  individual objects by transferring their ownership
                  to a special freezer object, which prevents further
                  modification. The paper demonstrates how
                  immutability facilitates program verification by
                  extending the Boogie methodology for object
                  invariants to immutable objects. The technique is
                  based on Spec Sharp dynamic ownership, but the
                  concepts also apply to other ownership systems that
                  support transfer."
}

@InProceedings{ML09,
  title =	 "Static ownership inference for reasoning against
                  concurrency errors",
  author =	 "Ana Milanova and Yin Liu",
  publisher =	 ieee,
  year =	 2009,
  booktitle =	 "ICSE Companion",
  pages =	 "279--282",
}

@InProceedings{MS04,
  title =	 "An Object Ownership Inference Algorithm and its
                  Application",
  author =	 "Samuel E. Moelius III and Amie L. Souter",
  booktitle =	 "MASPLAS",
  year =	 2004
}

@InProceedings{Mil08,
  title =	 "Static Inference of Universe Types",
  author =	 "Ana Milanova",
  booktitle =	 "IWACO",
  year =	 2008
}

@Book{Mueller02,
  author =	 "P. M{\"u}ller",
  title =	 "Modular Specification and Verification of
                  Object-Oriented Programs",
  publisher =	 "Springer-Verlag",
  series =	 "Lecture Notes in Computer Science",
  volume =	 2262,
  year =	 2002
}

@InProceedings{PGS06,
  title =	 "Infering Ownership Types for Encapsulated
                  Object-Oriented Program Components",
  author =	 "Arnd Poetzsch-Heffter and Kathrin Geilmann and Jan
                  Sch{\"a}fer",
  publisher =	 sv,
  year =	 2006,
  volume =	 4444,
  booktitle =	 "Program Analysis and Compilation",
  pages =	 "120--144",
  series =	 lncs
}

@InProceedings{Pea11,
  title =	 "{JP}ure: {A} Modular Purity System for Java",
  author =	 "David J. Pearce",
  booktitle =	 cc,
  publisher =	 sv,
  year =	 2011,
  volume =	 6601,
  pages =	 "104--123",
  series =	 lncs
}

@InProceedings{Rou04,
 title =	"Precise Identification of Side-Effect-Free Methods in
		 {Java}",
 booktitle = "Proceedings of ICSM",
 author =	"Atanas Rountev",
 publisher =	"IEEE Computer Society",
 year = 	"2004",
 pages =	"82--91"
}

@inproceedings{SR05,
  author =	 "A. Salcianu and M. Rinard",
  title =	 "Purity and Side Effect Analysis for {Java} Programs",
  booktitle =	 "Proceedings of VMCAI",
  pages =	 "199--215",
  year =	 2005
}

@InProceedings{abadi:1997:spi,
  Author =	 {M. Abadi and A. D. Gordon},
  Booktitle =	 {Fourth ACM Conference on Computer and Communications
                  Security},
  Date-Modified ={2008-09-02 22:42:40 +1200},
  Pages =	 {36--47},
  Publisher =	 acm,
  Title =	 {A Calculus for Cryptographic Protocols: The {S}pi
                  Calculus},
  Year =	 1997
}

@Misc{adamic:www:zipf-power-pareto,
  Author =	 {Lada A. Adamic},
  Date-Modified ={2008-09-02 22:43:18 +1200},
  Howpublished =
                  {\url{http://ginger.hpl.hp.com/shl/papers/ranking/ranking.html}},
  Title =	 {Zipf, power laws, and pareto - a ranking tutorial}
}

@InProceedings{agesen:1997:type-parameterization,
  Author =	 {Ole Agesen and Stephen Freund and John Mitchell},
  Booktitle =	 oopsla,
  Title =	 {Adding Type Parameterization to {J}ava},
  Year =	 1997
}

@Book{aho:1986:dragon-book,
  Author =	 {Alfred V. Aho and Ravi Sethi and Jeffrey D. Ullman},
  Publisher =	 aw,
  Title =	 {Compilers: {P}rinciples, {T}echniques, and {T}ools},
  Year =	 1986
}

@Article{albert:2000:www-diameter-nature,
  Author =	 {Reka Albert and Hawoong Jeong and Albert-Laszlo
                  Barabasi},
  Date-Modified ={2008-09-02 22:43:51 +1200},
  Journal =	 {Nature},
  Number =	 130,
  Title =	 {The Diameter of the World Wide Web},
  Volume =	 401,
  Year =	 2000
}

@InProceedings{aldrich:2002:alias,
  Address =	 {Seattle, WA, USA},
  Author =	 {Jonathan Aldrich and Valentin Kostadinov and Craig
                  Chambers},
  Booktitle =	 oopsla,
  Date-Modified ={2008-09-02 22:44:12 +1200},
  Month =	 nov,
  Pages =	 {311--330},
  Publisher =	 acm,
  Title =	 {{A}lias {A}nnotations for {P}rogram {U}nderstanding},
  Year =	 2002
}

@InProceedings{aldrich:2004:ownership-domains,
  Address =	 {Oslo, Norway},
  Author =	 {Jonathan Aldrich and Craig Chambers},
  Booktitle =	 {ECOOP},
  Date-Modified ={2008-08-22 13:39:55 +1200},
  Month =	 jun,
  Pages =	 {1--25},
  Publisher =	 sv,
  Title =	 {{O}wnership {D}omains: {S}eparating {A}liasing
                  {P}olicy from {M}echanism},
  Volume =	 3086,
  Year =	 2004
}

@InProceedings{aldrich:2005:fsubown,
  Address =	 {Chicago, UL, USA},
  Author =	 {Neel Krishnaswami and Jonathan Aldrich},
  Booktitle =	 pldi,
  Date-Modified ={2008-10-10 14:53:37 +1300},
  Pages =	 {96--106},
  Publisher =	 acm,
  Title =	 {Permission-Based Ownership: Encapsulating State in
                  Higher-Order Typed Languages},
  Year =	 2005
}

@InProceedings{almeida:1997:balloons,
  Author =	 {Paulo S{\'e}rgio Almeida},
  Booktitle =	 ecoop,
  Date-Modified ={2008-10-10 14:53:57 +1300},
  Month =	 jun,
  Publisher =	 sv,
  Title =	 {Balloon Types: Controlling Sharing of State in Data
                  Types},
  Year =	 1997
}

@PhDThesis{almeida:1998:thesis,
  Author =	 {Paulo S{\'e}rgio Almeida},
  Month =	 {June},
  School =	 {Department of Computing, Imperial College of
                  Science, Technology, and Medicine, University of
                  London},
  Title =	 {Control of Object Sharing in Programming Languages},
  Year =	 1998
}

@TechReport{america:1990:spool,
  Author =	 {Pierre America and Frank {de Boer}},
  Institution =	 {Philips Research Laboratories},
  Number =	 {Technical Report 505},
  Title =	 {A sound and complete proof system for {SPOOL}},
  Year =	 1990
}

@InProceedings{andreae:2006:javacop,
  Address =	 {Portland, Oregon, USA},
  Author =	 {Chris Andreae and James Noble and Shane Markstrum
                  and Todd Millstein},
  Booktitle =	 oopsla,
  Month =	 oct,
  Publisher =	 acm,
  Title =	 {A Framework for Implementing Pluggable Type Systems},
  Year =	 2006
}

@InProceedings{andreae:2006:stars,
  Author =	 {Chris Andreae and James Noble and Yvonne Coady and
                  Celina Gibbs and Jan Vitek and Tian Zhao},
  Booktitle =	 ecoop,
  Publisher =	 sv,
  Title =	 {STARS: Scoped Types and Aspects for Real-Time
                  Systems},
  Year =	 2006
}

@Article{antoy:2010:functional-logic-programming,
  author =	 {Sergio Antoy and Michael Hanus},
  title =	 {Functional logic programming},
  journal =	 {Communications of the ACM},
  year =	 2010,
  volume =	 53,
  number =	 4,
  pages =	 {74--85},
  month =	 {April},
  doi =		 {http://doi.acm.org/10.1145/1721654.1721675},
  issn =	 {0001-0782},
  publisher =	 {ACM},
  address =	 {New York, NY, USA},
  abstract =	 { Professionals involved in software development
                  should follow the potential capabilities of
                  functional logic programming, as it is an emerging
                  programming paradigm offering novel ways to develop
                  software. Functional logic programming supports
                  specification, prototyping, and application
                  programming within a single language. It is the
                  basis of practical and convenient approach to
                  produce high-quality software. Functional logic
                  programming is terse yet clear, supporting rapid
                  development by avoiding some tedious tasks, and
                  allows incremental refinements to improve
                  efficiency. It makes programming fun without
                  sacrificing reliability. }
}

@InProceedings{artzi:2006:test-inputs,
  Abstract =	 {A test input for an object-oriented program
                  typically consists of a sequence of method calls
                  that use the API defined by the program under
                  test. Generating legal test inputs can be
                  challenging because, for some programs, the set of
                  legal method sequences is much smaller than the set
                  of all possible sequences; without a formal
                  specification of legal sequences, an input generator
                  is bound to produce mostly illegal sequences.  \par
                  We propose a scalable technique that combines
                  dynamic analysis with random testing to help an
                  input generator create legal test inputs without a
                  formal specification, even for programs in which
                  most sequences are illegal. The technique uses an
                  example execution of the program to infer a model of
                  legal call sequences, and uses the model to guide a
                  random input generator towards legal but
                  behaviorally-diverse sequences.  \par We have
                  implemented our technique for Java, in a tool called
                  Palulu, and evaluated its effectiveness in creating
                  legal inputs for real programs. Our experimental
                  results indicate that the technique is effective and
                  scalable. Our preliminary evaluation indicates that
                  the technique can quickly generate legal sequences
                  for complex inputs: in a case study, Palulu created
                  legal test inputs in seconds for a set of complex
                  classes, for which it took an expert thirty minutes
                  to generate a single legal input.},
  Address =	 MTOOS2006addr,
  Author =	 {Shay Artzi and Michael D. Ernst and Adam Kie{\.z}un
                  and Carlos Pacheco and Jeff H. Perkins},
  Authorascii =	 {Adam Kiezun},
  Basefilename = {oo-test-gen-mtoos2006},
  Booktitle =	 MTOOS2006,
  Category =	 {Testing},
  Downloadsnonlocal
                  ={http://pag.csail.mit.edu/~mernst/pubs/oo-test-gen-mtoos2006.pdf
                  PDF;
                  http://pag.csail.mit.edu/~mernst/pubs/oo-test-gen-mtoos2006.ps
                  PostScript},
  Month =	 MTOOS2006date,
  Needpages =	 {*},
  Summary =	 {An automatically inferred model of legal method call
                  sequences can bias test generation toward legal
                  method sequences, increasing coverage and creating
                  data structures beyond the ability of undirected
                  random generation.},
  Title =	 {Finding the needles in the haystack: Generating
                  legal test inputs for object-oriented programs},
  Year =	 2006
}

@InProceedings{baker:1990:unifyandconquer,
  Address =	 {Nice, France},
  Author =	 {Henry G. Baker},
  Booktitle =	 {Proc. 1990 {ACM} Conf. on Lisp and Functional
                  Programming},
  Month =	 {June},
  Pages =	 {218-226},
  Publisher =	 acm,
  Title =	 {Unify and {C}onquer ({G}arbage, {U}pdating,
                  {A}liasing) in {F}unctional {L}anguages},
  Year =	 1990
}

@Article{baker:1993:equal-rights,
  Author =	 {Henry G. Baker},
  Journal =	 {{OOPS} Messenger},
  Month =	 oct,
  Number =	 4,
  Title =	 {Equal Rights for Functional Objects or, The More
                  Things Change, The More They Are the Same},
  Volume =	 4,
  Year =	 1993
}

@Article{baker:1993:iterators,
  Author =	 {Henry G. Baker},
  Journal =	 {{OOPS} Messenger},
  Month =	 jul,
  Number =	 3,
  Title =	 {Iterators: Signs of Weakness in Object-Oriented
                  Languages},
  Volume =	 4,
  Year =	 1993
}

@Article{baker:1995:use-once,
  Author =	 {Henry G. Baker},
  Journal =	 sigplan,
  Month =	 jan,
  Number =	 1,
  Title =	 {`{U}se-Once' Variables and Linear Objects -- Storage
                  Management, Reflection and Multi-Threading},
  Volume =	 30,
  Year =	 1995
}

@InProceedings{bancroft:1997:type-extension,
  Author =	 {Peter Bancroft and Ian Hayes},
  Booktitle =	 {Formal Methods Pacific '97},
  Month =	 {July},
  Title =	 {Type Extension and Refinement},
  Year =	 1997
}

@InProceedings{banerjee:2002:popl,
  Author =	 {Anindya Banerjee and David A.~Naumann},
  Booktitle =	 popl,
  Pages =	 {166--177},
  Publisher =	 acm,
  Title =	 {{R}epresentation {I}ndependence, {C}onfinement and
                  {A}ccess {C}ontrol},
  Year =	 2002
}

@Article{banerjee:2004:ownership-confinement,
  Author =	 {Anindya Banerjee and David A.~Naumann},
  Journal =	 jacm,
  Month =	 nov,
  Number =	 6,
  Pages =	 {894--960},
  Title =	 {{O}wnership {C}onfinement {E}nsures {R}epresentation
                  {I}ndependence for {O}bject-{O}riented {P}rograms},
  Volume =	 52,
  Year =	 2004
}

@Article{barabasi:2000:power-law-www,
  Author =	 {Albert-Laszlo Barabasi and Reka Albert and Hawoong
                  Jeong and Ginestra Bianconi},
  Journal =	 {Science},
  Note =	 {In technical comments},
  Number =	 {2115a},
  Title =	 {Power-Law Distribution of the World Wide Web},
  Volume =	 287,
  Year =	 2000
}

@Article{barabasi:2000:scale-free-www,
  Author =	 {Albert-Laszlo Barabasi and Reka Albert and Hawoong
                  Jeong},
  Journal =	 {Physica A},
  Note =	 {Elsevier Science B. V.},
  Pages =	 {69-77},
  Title =	 {Scale-free characteristics of random networks: the
                  topology of the world-wide web},
  Volume =	 281,
  Year =	 2000
}

@Book{barabasi:2002:linked,
  Author =	 {Albert-Laszlo Barabasi},
  Publisher =	 {New York: Perseus Press},
  Title =	 {Linked: The New Science of Networks},
  Year =	 2002
}

@InProceedings{barnett:2003:verification-of-oo-with-invariants,
  Address =	 {Darmstadt, Germany},
  Author =	 {Mike Barnett and Robert DeLine and Manuel Fahndrich
                  and K. Rustan M. Leino and Wolfram Schulte},
  Booktitle =	 ftfjp,
  Month =	 {July},
  Publisher =	 sv,
  Title =	 {Verification of object-oriented programs with
                  invariants},
  Year =	 2003
}

@InProceedings{barnett:2004:friends-need-a-bit-more,
  Author =	 {Mike Barnett and David Naumann},
  Booktitle =	 {Mathematics of Program Construction},
  Editor =	 {Dexter Kozen},
  Month =	 jul,
  Pages =	 {54--84},
  Publisher =	 sv,
  Series =	 lncs,
  Title =	 {Friends need a bit more: Maintaining invariants over
                  shared state},
  Year =	 2004
}

@InProceedings{barnett:2004:specsharp,
  Author =	 {Mike Barnett and K. Rustan M. Leino and Wolfram
                  Shulte},
  Booktitle =	 {CASSIS},
  Title =	 {The {S}pec\# Programming System: An Overview},
  Year =	 2004
}

@InProceedings{baxter:2006:shape-of-java,
  Address =	 {Portland, OR, USA},
  Author =	 {Gareth Baxter and Marcus Frean and James Noble and
                  Mark Rickerby and Hayden Smith and Matt Visser and
                  Hayden Melton and Ewan Tempero},
  Booktitle =	 oopsla,
  Pages =	 {397--412},
  Publisher =	 acm,
  Title =	 {Understanding the shape of {J}ava software},
  Year =	 2006
}

@Unpublished{beck:www:scalefreexp,
  Author =	 {Kent Beck},
  Note =
                  {\url{http://groups.yahoo.com/group/extremeprogramming/files/scale
                  free.pdf}},
  Title =	 {Scale-Free Extreme Programming}
}

@TechReport{bierman:2003:mj,
  Author =	 {G.M. Bierman and M.J. Parkinson and A.M. Pitts},
  Institution =	 {University of Cambridge Computer Laboratory},
  Month =	 apr,
  Number =	 563,
  Title =	 {An Imperative Core Calculus for Java and Java with
                  Effects},
  Year =	 2003
}

@InProceedings{birka:2004:javari,
  Abstract =	 {This paper describes a type system that is capable
                  of expressing and enforcing immutability
                  constraints.  The specific constraint expressed is
                  that the abstract state of the object to which an
                  immutable reference refers cannot be modified using
                  that reference.  The abstract state is (part of) the
                  transitively reachable state: that is, the state of
                  the object and all state reachable from it by
                  following references.  The type system permits
                  explicitly excluding fields or objects from the
                  abstract state of an object.  For a statically
                  type-safe language, the type system guarantees
                  reference immutability.  If the language is extended
                  with immutability downcasts, then run-time checks
                  enforce the reference immutability constraints.
                  \par In order to better understand the usability and
                  efficacy of the type system, we have implemented an
                  extension to Java, called Javari, that includes all
                  the features of our type system.  Javari is
                  interoperable with Java and existing JVMs.  It can
                  be viewed as a proposal for the semantics of the
                  Java \texttt{const} keyword, though Javari's syntax
                  uses \texttt{readonly} instead.  This paper
                  describes the design and implementation of Javari,
                  including the type-checking rules for the language.
                  This paper also discusses experience with 160,000
                  lines of Javari code.  Javari was easy to use and
                  provided a number of benefits, including detecting
                  errors in well-tested code.},
  Address =	 OOPSLA2004addr,
  Author =	 {Adrian Birka and Michael D. Ernst},
  Basefilename = {ref-immutability-oopsla2004},
  Booktitle =	 OOPSLA2004,
  Category =	 {Programming language design},
  Downloadsnonlocal
                  ={http://pag.csail.mit.edu/~mernst/pubs/ref-immutability-oopsla2004.pdf
                  PDF;
                  http://pag.csail.mit.edu/~mernst/pubs/ref-immutability-oopsla2004.ps
                  PostScript;
                  http://pag.csail.mit.edu/~mernst/pubs/ref-immutability-oopsla2004-slides.pdf
                  slides (PDF);
                  http://pag.csail.mit.edu/~mernst/pubs/ref-immutability-oopsla2004-slides.ps
                  slides (PostScript)},
  Month =	 OOPSLA2004date,
  Pages =	 {35--49},
  Summary =	 {This paper presents a type system, language,
                  implementation, and evaluation of a safe mechanism
                  for enforcing reference immutability, where an
                  immutable reference may not be used to cause side
                  effects to any object reachable from it.},
  Title =	 {A practical type system and language for reference
                  immutability},
  Usesdaikonastestsubject =1,
  Year =	 2004
}

@InProceedings{blackburn:2006:dacapo,
  author =	 {S. M. Blackburn and R. Garner and C. Hoffmann and
                  A. M. Khang and K. S. McKinley and R. Bentzur and
                  A. Diwan and D. Feinberg and D. Frampton and
                  S. Z. Guyer and M. Hirzel and A. Hosking and M. Jump
                  and H. Lee and J. E. B. Moss and A. Phansalkar and
                  D. Stefanovic and T. VanDrunen and D. von Dincklage
                  and B. Wiedermann},
  title =	 {The {D}a{C}apo benchmarks: {J}ava benchmarking
                  development and analysis},
  booktitle =	 oopsla,
  pages =	 {169--190},
  year =	 2006,
  month =	 oct
}

@InProceedings{blake:1987:part-hierarchies,
  Author =	 {Edwin Blake and Steve Cook},
  Booktitle =	 ecoop,
  Title =	 {On Including Part Hierarchies in Object-Oriented
                  Languages, with an Implementation in {S}malltalk},
  Year =	 1987
}

@Book{bobrow:1983:loops-manual,
  Author =	 {Daniel G. Bobrow},
  Publisher =	 {Xerox Parc},
  Title =	 {The {LOOPS} Manual},
  Year =	 1983
}

@InProceedings{bocchino:2009:dpj,
  author = 	 {Bocchino,Jr., Robert L. and Adve, Vikram S. and Dig, Danny and Adve, Sarita V. and Heumann, Stephen and Komuravelli, Rakesh and Overbey, Jeffrey and Simmons, Patrick and Sung, Hyojin and Vakilian, Mohsen},
  title = 	 {A type and effect system for deterministic parallel Java},
  booktitle = oopsla,
  pages = 	 {97--116},
  year = 	 2009,
  publisher = acm
}

@PhdThesis{bocchino:2012:phd,
  author =	 {Robert Bocchino},
  title =	 {An Effect System and Language for
                  Deterministic-by-Default Parallel Programming},
  school =	 {University of Illinois at Urbana-Champaign},
  year =	 2010
}

@Misc{bogk:2002:dhc-invitation,
  Author =	 {Andreas Bogk},
  Howpublished = {\url{http://www.gwydiondylan.org/dhc.phtml}},
  Month =	 {July},
  Title =	 {Invitation to Dylan Hackers Conference},
  Year =	 2002
}

@Misc{bogk:2002:dhc-report,
  Author =	 {Andreas Bogk},
  Howpublished = {\url{http://www.gwydiondylan.org/dhc-2002.phtml}},
  Month =	 {July},
  Title =	 {Dylan Hackers Conference Report},
  Year =	 2002
}

@InProceedings{bokowski:1999:confined-types,
  Author =	 {Boris Bokowski and Jan Vitek},
  Booktitle =	 oopsla,
  Publisher =	 {ACM Press},
  Title =	 {Confined types},
  Year =	 1999
}

@Book{booch:1991:oo-design-with-applications,
  Author =	 {Grady Booch},
  Publisher =	 {The Benjamin / Cummings Publishing Company},
  Title =	 {Object-oriented design with applications},
  Year =	 1991
}

@Misc{bornat:2003:fringe,
  Author =	 {Richard Bornat and Christiano Calcgno and peter
                  O'Hearn},
  Title =	 {Local reasoning, Separation and Aliasing},
  Url =
                  {http://www.cs.mdx.ac.uk/staffpages/r_bornat/papers/separation_and_aliasing.pdf},
  Year =	 2003,
  Bdsk-Url-1 =
                  {http://www.cs.mdx.ac.uk/staffpages/r_bornat/papers/separation_and_aliasing.pdf}
}

@Article{borning:1981:tl,
  Author =	 {Alan Borning},
  Journal =	 toplas,
  Month =	 oct,
  Number =	 4,
  Title =	 {The Programming Language Aspects of {ThingLab}, a
                  Constraint-Oriented Simulation Laboratory},
  Volume =	 3,
  Year =	 1981
}

@InProceedings{boyapati:2001:oopsla,
  Address =	 {{T}ampa {B}ay, {FL}, {USA}},
  Author =	 {Chandrasekhar Boyapati and Martin Rinard},
  Booktitle =	 oopsla,
  Pages =	 {56--69},
  Publisher =	 acm,
  Title =	 {{A} {P}arameterized {T}ype {S}ystem for
                  {R}ace-{F}ree {J}ava {P}rograms},
  Year =	 2001
}

@InProceedings{boyapati:2002:oopsla,
  Address =	 {Seattle, {WA}, {USA}},
  Author =	 {Chandrasekhar Boyapati and Robert Lee and Martin
                  Rinard},
  Booktitle =	 oopsla,
  Month =	 {November},
  Publisher =	 acm,
  Title =	 {Ownership Types for Safe Programming: Preventing
                  Data Races and Deadlocks},
  Year =	 2002
}

@InCollection{boyapati:2003:iwaco,
  Address =	 {Darmstadt, Germany},
  Author =	 {Chandrasekhar Boyapati and Robert Lee and Martin
                  Rinard},
  Booktitle =	 iwaco,
  Editor =	 {Dave Clarke},
  Month =	 {July},
  Pages =	 {1 -- 14},
  Publisher =	 {Utrecht University},
  Title =	 {Safe Runtime Downcasts with Ownership Types},
  Year =	 2003
}

@InProceedings{boyapati:2003:popl,
  Address =	 {{N}ew {O}rleans, {LA}, {USA}},
  Author =	 {Chandrasekhar Boyapati and Barbara Liskov and Liuba
                  Shrira},
  Booktitle =	 popl,
  Month =	 jan,
  Note =	 {Invited talk by Barbara Liskov.},
  Pages =	 {213--223},
  Publisher =	 acm,
  Title =	 {{O}wnership {T}ypes for {O}bject {E}ncapsulation},
  Year =	 2003
}

@PhDThesis{boyapati:2004:phd,
  Author =	 {Chandrasekhar Boyapati},
  Month =	 {February},
  School =	 {EECS, MIT},
  Title =	 {SafeJava: A Unified Type System for Safe
                  Programming},
  Year =	 2004
}

@InProceedings{boyland:1997:parasitic-methods,
  Author =	 {John Boyland and Giuseppe Castagna},
  Booktitle =	 oopsla,
  Pages =	 {66--76},
  Publisher =	 acm,
  Title =	 {Parasitic {M}ethods: An Implementation of
                  Multi-Methods for {J}ava},
  Year =	 1997
}

@InProceedings{boyland:1998:promises,
  Author =	 {Edwin C. Chan and John T. Boyland and William
                  L. Scherlis},
  Booktitle =	 icse,
  Title =	 {Promises: Limitied Specifications for Analysis and
                  Manipulation},
  Year =	 1998
}

@InProceedings{boyland:2001:capabilities,
  Author =	 {John Boyland and James Noble and William Retert},
  Booktitle =	 ecoop,
  Month =	 jun,
  Publisher =	 sv,
  Title =	 {Capabilities for {S}haring: {A} {G}eneralization of
                  {U}niqueness and {R}ead-{O}nly},
  Year =	 2001
}

@Article{boyland:2001:unique,
  Author =	 {John Boyland},
  Journal =	 {Software --- Practice and Experience},
  Month =	 {May},
  Number =	 6,
  Pages =	 {533-553},
  Title =	 {Alias burying: Unique variables without destructive
                  reads},
  Volume =	 31,
  Year =	 2001
}

@InProceedings{boyland:2003:connecting,
  Author =	 {John Boyland},
  Booktitle =	 iwaco,
  Editor =	 {Dave Clarke},
  Month =	 {July},
  Number =	 {UU-CS-2003-030},
  Pages =	 {42 -- 57},
  Publisher =	 {Utrecht University},
  Title =	 {Connecting Effects and Uniqueness with Adoption},
  Year =	 2003
}

@InProceedings{boyland:2003:fractional,
  Author =	 {John Boyland},
  Booktitle =	 {Static Analysis: 10th International Symposium},
  Number =	 2694,
  Pages =	 {55--72},
  Publisher =	 sv,
  Series =	 lncs,
  Title =	 {Checking interference with fractional permissions},
  Year =	 2003
}

@InProceedings{boyland:2005:connecting,
  Address =	 acm-address,
  Author =	 {John Tang Boyland and William Reter},
  Booktitle =	 popl,
  Publisher =	 acm,
  Title =	 {Connecting Effects and Uniqueness with Adoption},
  Year =	 2005
}

@InProceedings{boyland:2005:no-readonly,
  Address =	 {Glasgow, Scotland},
  Author =	 {John Boyland},
  Booktitle =	 ftfjp,
  Month =	 jul,
  Title =	 {Why we should not add readonly to {J}ava (yet)},
  Year =	 2005
}

@InProceedings{bracha:1998:gj,
  Address =	 {Vancouver, {BC}, {C}anada},
  Author =	 {Gilad Bracha and Martin Odersky and David Stoutamire
                  and Philip Wadler},
  Booktitle =	 oopsla,
  Month =	 oct,
  Publisher =	 acm,
  Title =	 {Making the future safe for the past: {A}dding
                  {G}enericity to the {J}ava Programming Language},
  Year =	 1998
}

@TechReport{breunesse:2002:smart-card-verif,
  Author =	 { C.-B. Breunesse, B. Jacobs, N. Catano and
                  M. Huisman},
  Institution =	 {Computing Science Institute, University of Nijmegen},
  Number =	 {NIII-R0316},
  Title =	 { Formal Methods for Smart Cards: an experience
                  report},
  Year =	 2003
}

@Article{burdy:2005:jml,
  Abstract =	 {The Java Modeling Language (JML) can be used to
                  specify the detailed design of Java classes and
                  interfaces by adding annotations to Java source
                  files. The aim of JML is to provide a specification
                  language that is easy to use for Java programmers
                  and that is supported by a wide range of tools for
                  specification type-checking, runtime debugging,
                  static analysis, and verification.  \par This paper
                  gives an overview of the main ideas behind JML,
                  details about JML's wide range of tools, and a
                  glimpse into existing applications of JML.},
  Author =	 {Lilian Burdy and Yoonsik Cheon and David Cok and
                  Michael D. Ernst and Joe Kiniry and Gary T. Leavens
                  and K. Rustan M. Leino and Erik Poll},
  Basefilename = {jml-tools-sttt2005},
  Category =	 {Verification},
  Downloadsnonlocal
                  ={http://pag.csail.mit.edu/~mernst/pubs/jml-tools-sttt2005.pdf
                  PDF;
                  http://pag.csail.mit.edu/~mernst/pubs/jml-tools-sttt2005.ps
                  PostScript},
  Journal =	 STTT,
  Month =	 jun,
  Number =	 3,
  Pages =	 {212--232},
  Summary =	 {This paper overviews the Java Modeling Language
                  (JML) notation for detailed design and gives a brief
                  description of some of the tools that take it as an
                  input or produce it as an output.},
  Title =	 {An overview of {JML} tools and applications},
  Usesdaikon =	 1,
  Volume =	 7,
  Year =	 2005
}

@InProceedings{cabral:2007:exceptions-study,
  Author =	 {Bruno Cabral and Paulo Marques},
  Booktitle =	 ecoop,
  Pages =	 {151--175},
  Publisher =	 sv,
  Title =	 {Exception {H}andling: A Field Study in {J}ava and
                  {.NET}},
  Volume =	 4609,
  Year =	 2007
}

@InProceedings{cameron:2007:mojo,
  author =	 {Nicholas Cameron and Sophia Drossopoulou and James
                  Noble and Matthew Smith},
  title =	 {Multiple ownership},
  booktitle =	 {ACM SIGPLAN Conference on Object-Oriented
                  Programming, Systems, Languages and Applications
                  (OOPSLA)},
  pages =	 {441--460},
  year =	 2007,
  address =	 {New York, NY, USA},
  publisher =	 {ACM},
  isbn =	 {978-1-59593-786-5},
  location =	 {Montreal, Quebec, Canada},
  doi =		 {http://doi.acm.org/10.1145/1297027.1297060},
  abstract =	 { Existing ownership type systems require objects to
                  have precisely one primary owner, organising the
                  heap into an ownership tree. Unfortunately, a tree
                  structure is too restrictive for many programs, and
                  prevents many common design patterns where multiple
                  objects interact. Multiple Ownership is an ownership
                  type system where objects can have more than one
                  owner, and the resulting ownership structure forms a
                  DAG. We give a straightforward model for multiple
                  ownership, focusing in particular on how multiple
                  ownership can support a powerful effect system that
                  determines when two computations interfere - in
                  spite of the DAG structure. We present a core
                  programming language MOJO, Multiple Ownership for
                  Java-like Objects, including a type and effects
                  system, and soundness proof. In comparison to other
                  systems, MOJO imposes absolutely no restrictions on
                  pointers, modifications or programs' structure, but
                  in spite of this, MOJO's effects can be used to
                  reason about or describe programs' behaviour. }
}

@InProceedings{cameron:2008:wildcards,
  author =	 {Nicholas Cameron and Sophia Drossopoulou and Erik
                  Ernst},
  title =	 {A Model for Java with Wildcards},
  booktitle =	 ecoop,
  pages =	 {2--26},
  year =	 2008,
  volume =	 {5142/2008},
  series =	 lncs,
  address =	 {Cyprus},
  publisher =	 sv
}

@Article{cardelli:1985:understanding-types,
  Author =	 {Luca Cardelli and Peter Wegner},
  Journal =	 {Computing Surveys},
  Month =	 {December},
  Number =	 4,
  Pages =	 {471-522},
  Title =	 {On {U}nderstanding {T}ypes, {D}ata {A}bstraction,
                  and {P}olymorphism},
  Volume =	 17,
  Year =	 1985
}

@InCollection{cardelli:1991:typeful-prog,
  Author =	 {Luca Cardelli},
  Booktitle =	 {Formal Descriptions of Programming Concepts},
  Editor =	 {E.J. Newbold and M. Paul},
  Publisher =	 sv,
  Title =	 {Typeful Programming},
  Year =	 1991
}

@Book{cardelli:1996:theory-of-objects,
  Author =	 {Mart{\'\i}n Abadi and Luca Cardelli},
  Publisher =	 sv,
  Title =	 {A Theory of Objects},
  Year =	 1996
}

@InProceedings{cardelli:1998:mobile-ambients,
  Author =	 {Luca Cardelli and Andrew D. Gordon},
  Booktitle =	 {Foundations of Software Science and Computation
                  Structures, European Joint Conferences on Theory and
                  Practice of Software},
  Month =	 {March},
  Title =	 {Mobile {A}mbients},
  Year =	 1998
}

@InProceedings{chalin:2007:nonnull-by-default,
  Author =	 {Patrice Chalin and Perry R. James},
  Booktitle =	 ecoop,
  Pages =	 {227--247},
  Publisher =	 sv,
  Title =	 {Non-null References by Default in {J}ava:
                  Alleviating the Nullity Annotation Burden},
  Volume =	 4609,
  Year =	 2007
}

@TechReport{chambers:1997:bececil,
  Author =	 {Craig Chambers and Gary T. Leavens},
  Institution =	 {Department of Computer Science and Engineering,
                  University of Washington},
  Number =	 {UW-CSE-96-12-02},
  Title =	 {{BeCecil}, a core object-oriented language with
                  block structure and multimethods: Semantics and
                  typing},
  Year =	 1997
}

@TechReport{chambers:1997:cecil,
  Author =	 {Craig Chambers},
  Institution =	 {University of Washington},
  Month =	 {March},
  Number =	 {Version 2.7},
  Title =	 {The {C}ecil Language: Specification \& {R}ationale},
  Year =	 1997
}

@InProceedings{chambers:1997:fool,
  Author =	 {Craig Chambers and Gary Leavens},
  Booktitle =	 fool,
  Title =	 {Type Soundness for an Object-Oriented Language with
                  Multimethods, Block Structure, and Modules},
  Year =	 1997
}

@InProceedings{charles:2005:oopsla,
  Address =	 {San Diego, CA, USA},
  Author =	 {Philippe Charles and Christopher Donawa and Kemal
                  Ebcioglu and Christian Grothoff and Allan Kielstra
                  and Vivek Sarkar and Christoph Von Praun},
  Booktitle =	 oopsla,
  Publisher =	 acm,
  Title =	 {X10: An Object-Oriented Approach to Non-Uniform
                  Cluster Computing},
  Year =	 2005
}

@InProceedings{civello:1993:oopsla,
  Author =	 {Franco Civello},
  Booktitle =	 oopsla,
  Title =	 {Roles for composite objects in object-oriented
                  analysis and design},
  Year =	 1993
}

@Article{clark:1977:lisp-power-laws,
  Author =	 {Douglas W. Clark and C. Cordell Green},
  Journal =	 {Communications of the ACM},
  Month =	 feb,
  Number =	 2,
  Pages =	 {78--87},
  Title =	 {An empirical study of list structures in {Lisp}},
  Volume =	 20,
  Year =	 1977
}

@Unpublished{clark:1999:xpath,
  Author =	 {James Clark and Steve DeRose},
  Month =	 nov,
  Note =	 {\texttt{http://www.w3.org/TR/xpath}},
  Title =	 {{XML} Path Language ({XPath}) Version 1.0},
  Year =	 1999
}

@InProceedings{clarke:1998:ownership-types-for-flexible-alias-protection,
  Address =	 {{V}ancouver, {C}anada},
  Author =	 {David Clarke and John Potter and James Noble},
  Booktitle =	 {OOPSLA},
  Month =	 oct,
  Pages =	 {48--64},
  Publisher =	 acm,
  Title =	 {{O}wnership {T}ypes for {F}lexible {A}lias
                  {P}rotection},
  Year =	 1998
}

@InProceedings{clarke:2001:simple-ownership-types,
  Author =	 {David Clarke and James Noble and John Potter},
  Booktitle =	 ecoop,
  Publisher =	 sv,
  Title =	 {Simple ownership types for object confinement},
  Year =	 2001
}

@InProceedings{clarke:2002:disjoint,
  Address =	 {{S}eattle, {WA}, {USA}},
  Author =	 {Dave Clarke and Sophia Drossopoulou},
  Booktitle =	 oopsla,
  Month =	 nov,
  Pages =	 {292--310},
  Publisher =	 acm,
  Title =	 {{O}wnership, {E}ncapsulation, and the {D}isjointness
                  of {T}ype and {E}ffect},
  Year =	 2002
}

@PhDThesis{clarke:2002:phd,
  Author =	 {Dave Clarke},
  School =	 {{S}chool of {CSE}, {UNSW}, {A}ustralia},
  Title =	 {{O}bject {O}wnership and {C}ontainment},
  Year =	 2002
}

@InProceedings{clarke:2003:external-uniqueness,
  Address =	 {{D}armstadt, {G}ermany},
  Author =	 {David Clarke and Tobias Wrigstad},
  Booktitle =	 ecoop,
  Month =	 jul,
  Pages =	 {176--200},
  Publisher =	 sv,
  Series =	 lncs,
  Title =	 {{E}xternal {U}niqueness is {U}nique {E}nough},
  Volume =	 2473,
  Year =	 2003
}

@InProceedings{clarke:2003:saving,
  Address =	 {Anaheim, CA},
  Author =	 {Dave Clarke and Michael Richmond and James Noble},
  Booktitle =	 oopsla,
  Pages =	 {374--387},
  Publisher =	 acm,
  Title =	 {{S}aving the {W}orld from {B}ad {B}eans:
                  {D}eployment-{T}ime {C}onfinement {C}hecking},
  Year =	 2003
}

@Unpublished{clarke:2008:active-ownership,
  Author =	 {Dave Clarke and Tobias Wrigstad and Johan \"Ostlund
                  and Einar Broch Johnsen},
  Note =	 {Submitted for publication.},
  Title =	 {Minimal Ownership for Active Objects}
}

@Article{clausen:1997:side-effect-opt,
  Abstract =	 {This paper describes Cream, an optimizer for Java
                  bytecode using side-effect analysis to improve the
                  optimizations. Dead-code elimination and
                  loop-invariant removal are implemented and tested,
                  as well as several variations of the side-effect
                  analysis. The optimizer is tested on real-world
                  applications such as itself and JavaSoft's Java
                  compiler. Results show that the optimizations
                  benefit well from the side-effect analysis. The best
                  side-effect analysis gives five to ten times as many
                  optimizations as without an analysis, and, in one
                  case, makes a speed increase of 25\% possible.},
  Author =	 {Lars R. Clausen},
  Bibsource =	 {DBLP, http://dblp.uni-trier.de},
  Journal =	 CPE,
  Number =	 11,
  Pages =	 {1031-1045},
  Title =	 {A {Java} bytecode optimizer using side-effect
                  analysis},
  Volume =	 9,
  Year =	 1997
}

@InProceedings{clifton:2007:mao,
  Author =	 {Curtis Clifton and Gary T. Leavens and James Noble},
  Booktitle =	 ecoop,
  Title =	 {{MAO}: Ownership and Effects for more Effective
                  Reasoning about Aspects},
  Year =	 2007
}

@Article{counsell:2010:constructors-study,
  author =	 {S. Counsell and G. Loizou and and R. Najjar},
  title =	 {Evaluation of the 'replace constructors with
                  creation methods' refactoring in {J}ava systems},
  journal =	 {{IET} Software},
  year =	 2010,
  volume =	 4,
  number =	 5,
  pages =	 {318--333}
}

@InProceedings{cowan:2003:buffer-overflows,
  Author =	 {C. Cowan and P. Wagle and C. Pu and S. Beattie and
                  J. Walpole},
  Booktitle =	 {Foundations of Intrusion Tolerant Systems},
  Pages =	 {227--237},
  Publisher =	 {IEEE},
  Title =	 {Buffer overflows: attacks and defenses for the
                  vulnerability of the decade},
  Year =	 2003
}

@Book{dahl:1972:simula,
  author =	 {{O-J} Dahl and {EW} Dijkstra and {CAR} Hoare},
  title =	 {Structured Programming},
  chapter =	 {Hierarchical Program Structures},
  publisher =	 {Academic Press},
  year =	 1972,
  note =	 {Part III}
}

@InProceedings{dallmeier:2006:adabu,
  Address =	 WODA2006addr,
  Author =	 {Valentin Dallmeier and Christian Lindig and Andrzej
                  Wasylkowski and Andreas Zeller},
  Booktitle =	 WODA2006,
  Month =	 WODA2006date,
  Pages =	 {17--24},
  Title =	 {Mining object behavior with {ADABU}},
  Year =	 2006
}

@InProceedings{demsky:2002:role-based-exploration,
  Address =	 {Orlando, Florida},
  Author =	 {B. Demsky and M. Rinard},
  Booktitle =	 icse,
  Month =	 May,
  Title =	 {Role-Based Exploration of Object-Oriented Programs},
  Year =	 2002
}

@InProceedings{deutsch:1994:may-alias,
  Author =	 {Alain Deutsch},
  Booktitle =	 pldi,
  Month =	 jun,
  Title =	 {Interprocedural {M}ay-{A}lias {A}nalysis for
                  {P}ointers: {B}eyond k-limiting},
  Year =	 1994
}

@InProceedings{dieckmann:1999:memory,
  Author =	 {Sylvia Dieckmann and Urs H{\"o}lzle},
  Booktitle =	 ecoop,
  Month =	 jun,
  Publisher =	 sv,
  Series =	 {Lecture Notes in Computer Science},
  Title =	 {A Study of the Allocation Behavior of the
                  {SPECjvm98} {J}ava Benchmarks},
  Volume =	 1628,
  Year =	 1999
}

@InProceedings{dietl:2004:exceptions,
  Author =	 {Werner Dietl and Peter M{\"u}ller},
  Booktitle =	 ftfjp,
  Title =	 {Exceptions in Ownership Type Systems},
  Year =	 2004
}

@Article{dietl:2005:jml,
  Author =	 {Werner Dietl and Peter M{\"u}ller},
  Journal =	 {Journal of Object Technology},
  Note =
                  {\url{http://www.jot.fm/issues/issue_2005_10/article1}},
  Number =	 8,
  Pages =	 {5--32},
  Title =	 {Universes: Lightweight Ownership for {JML}},
  Volume =	 4,
  Year =	 2005
}

@InProceedings{dietl:2007:gut,
  Author =	 {Werner Dietl and Sophia Drossopoulou and Peter
                  M{\"u}ller},
  Booktitle =	 ecoop,
  Title =	 {Generic Universe Types},
  Year =	 2007
}

@Article{dijkstra:1968:goto,
  Author =	 {Edsger W. Dijkstra},
  Journal =	 cacm,
  Month =	 mar,
  Number =	 3,
  Pages =	 {147--148},
  Title =	 {{Go} {To} Statement Considered Harmful},
  Volume =	 11,
  Year =	 1968
}

@InProceedings{diwan:1998:type-based-alias-analysis,
  Address =	 acm-address,
  Author =	 {Amer Diwan and Kathryn S. McKinley and J. Eliot
                  B. Moss},
  Booktitle =	 pldi,
  Month =	 jun,
  Publisher =	 acm,
  Title =	 {Type-Based Alias Analysis},
  Year =	 1998
}

@Article{dolado:2003:tse,
  Abstract =	 {This paper reports the results of a study on the
                  impact of a type of side effect (SE) upon program
                  comprehension. We applied a crossover design on
                  different tests involving fragments of C code that
                  include increment and decrement operators. Each test
                  had an SE version and a side-effect-free
                  counterpart. The variables measured in the
                  treatments were the number of correct answers and
                  the time spent in answering. The results show that
                  the side-effect operators considered significantly
                  reduce performance in comprehension-related tasks,
                  providing empirical justification for the belief
                  that side effects are harmful.},
  Author =	 {Jos{\'e} Javier Dolado and Mark Harman and Mari
                  Carmen Otero and Lin Hu},
  Journal =	 TSE,
  Month =	 jul,
  Number =	 7,
  Pages =	 {665--670},
  Title =	 {An Empirical Investigation of the Influence of a
                  Type of Side Effects on Program Comprehension},
  Volume =	 29,
  Year =	 2003
}

@Article{donahue:1985:data-types-values,
  Author =	 {J. Donahue and A. Demers},
  Journal =	 {ACM Transactions on Programming Languages and
                  Systems},
  Number =	 3,
  Pages =	 {426--445},
  Title =	 {Data Types are Values},
  Volume =	 7,
  Year =	 1985
}

@Article{dong:1995:geometry,
  Author =	 {Jin Song Dong and Roger Duke},
  Journal =	 {Object Oriented Systems},
  Pages =	 {41-63},
  Title =	 {The Geometry of Object Containment},
  Volume =	 2,
  Year =	 1995
}

@InProceedings{dong:1995:tools,
  Author =	 {Jin Song Dong and Roger Duke},
  Booktitle =	 {{TOOLS} {P}acific 18},
  Title =	 {Exclusive Control within Object Oriented Systems},
  Year =	 1995
}

@Book{ellis:1990:cpp-reference,
  Author =	 {Margaret Ellis and Bjarne Stroustrup},
  Publisher =	 aw,
  Title =	 {The {A}nnotated {C}++ {R}eference {M}anual},
  Year =	 1990
}

@Article{erdos:1961:random-graphs,
  Author =	 {P. Erdos and A. Renyi},
  Journal =	 {Acta Math. Acad. Sci. Hungary},
  Number =	 35,
  Pages =	 {261-267},
  Title =	 {On the strength of connectedness of random graphs},
  Volume =	 12,
  Year =	 1961
}

@Article{ernst:2001:tse,
  Abstract =	 {Explicitly stated program invariants can help
                  programmers by identifying program properties that
                  must be preserved when modifying code.  In practice,
                  however, these invariants are usually implicit.  An
                  alternative to expecting programmers to fully
                  annotate code with invariants is to automatically
                  infer likely invariants from the program itself.
                  This research focuses on dynamic techniques for
                  discovering invariants from execution traces.  \par
                  This article reports three results.  First, it
                  describes techniques for dynamically discovering
                  invariants, along with an implementation, named
                  Daikon, that embodies these techniques.  Second, it
                  reports on the application of Daikon to two sets of
                  target programs.  In programs from Gries's work on
                  program derivation, the system rediscovered
                  predefined invariants.  In a C program lacking
                  explicit invariants, the system discovered
                  invariants that assisted a software evolution task.
                  These experiments demonstrate that, at least for
                  small programs, invariant inference is both accurate
                  and useful.  Third, it analyzes scalability issues
                  such as invariant detection runtime and accuracy as
                  functions of test suites and program points
                  instrumented.},
  Author =	 {Michael D. Ernst and Jake Cockrell and William
                  G. Griswold and David Notkin},
  Basefilename = {invariants-tse2001},
  Category =	 {Invariant detection},
  Downloads =
                  {http://pag.csail.mit.edu/~mernst/pubs/invariants-icse99-slides.ppt
                  ICSE 1999 talk slides (PowerPoint);
                  http://pag.csail.mit.edu/~mernst/pubs/invariants-icse99-slides.ps
                  ICSE 1999 talk slides (PostScript);
                  http://pag.csail.mit.edu/daikon/ Implementation},
  Downloadsnonlocal
                  ={http://pag.csail.mit.edu/~mernst/pubs/invariants-tse2001.pdf
                  PDF},
  Journal =	 TSE,
  Month =	 feb,
  Note =	 ErnstCGN2001TSEnote,
  Number =	 2,
  Pages =	 {99--123},
  Summary =	 {Program properties (such as formal specifications or
                  assert statements) are useful for a variety of
                  programming tasks.  This paper shows how to
                  dynamically infer program properties by looking for
                  patterns and relationships among values computed at
                  run time.},
  Title =	 {Dynamically discovering likely program invariants to
                  support program evolution},
  Volume =	 27,
  Year =	 2001
}

@InProceedings{esop2007,
  editor =	 {Rocco De Nicola},
  title =	 {Programming Languages and Systems, 16th European
                  Symposium on Programming, ESOP 2007, Held as Part of
                  the Joint European Conferences on Theory and
                  Practics of Software, ETAPS 2007, Braga, Portugal,
                  March 24 - April 1, 2007, Proceedings},
  booktitle =	 {ESOP},
  publisher =	 {Springer},
  series =	 {Lecture Notes in Computer Science},
  volume =	 4421,
  year =	 2007,
  isbn =	 {978-3-540-71314-2},
  bibsource =	 {DBLP, http://dblp.uni-trier.de}
}

@Article{fabry:2004:dp-detection,
  Author =	 {Johan Fabry and Tom Mens},
  Journal =	 {Computer Languages, Systems and Structures},
  Number =	 {1--2},
  Pages =	 {21--33},
  Title =	 {Language-Independent Detection of Object-Oriented
                  Design Patterns},
  Volume =	 30,
  Year =	 2004
}

@Misc{fahlman:1994:dylan-white-paper,
  Author =	 {Scott E. Fahlman},
  Howpublished =
                  {\url{http://www-2.cs.cmu.edu/afs/cs/project/gwydion/docs/htdocs/gwydion/gwydion-overview.html}},
  Note =	 {Original Gwydion Project White Paper},
  Title =	 {Gwydion: An Integrated Software Environment for
                  Evolutionary Software Development and Maintenance},
  Year =	 1994
}

@inproceedings{fahndrich:2007:delayed,
  author    = {Manuel F{\"a}hndrich and
               Songtao Xia},
  title     = {Establishing object invariants with delayed types},
  year      = {2007},
  pages     = {337-350},
  editor    = {Richard P. Gabriel and
               David F. Bacon and
               Cristina Videira Lopes and
               Guy L. Steele Jr.},
  booktitle     =oopsla,
  publisher =acm,
}

@InProceedings{fiege:2002:scopes,
  Author =	 {Ludger Fiege and Mira Mezini and Gero M{\"u}hl and
                  Alejando P. Buchmann},
  Booktitle =	 ecoop,
  Month =	 jun,
  Title =	 {Engineering Event-based Systems with Scopes},
  Year =	 2002
}

@InProceedings{flanagan:1999:types-for-safe-locking,
  Author =	 {Cormac Flanagan and Mart{\'\i}n Abadi},
  Booktitle =	 {Programming Languages and Systems},
  Month =	 {March},
  Pages =	 {91-107},
  Series =	 {Lecture Notes in Computer Science},
  Title =	 {Types for {S}afe {L}ocking},
  Volume =	 1567,
  Year =	 1999
}

@InProceedings{flanagan:2000:race-detection,
  Author =	 {Cormac Flanagan and Stephen Freund},
  Booktitle =	 pldi,
  Month =	 {June},
  Title =	 {Type-based race detection for {J}ava},
  Year =	 2000
}

@InProceedings{flatt:1998:classes-mixins,
  Author =	 {Matthew Flatt and Shriram Krishnamurthi and Matthias
                  Felleisen},
  Booktitle =	 popl,
  Month =	 {January},
  Title =	 {Classes and {M}ixins},
  Year =	 1998
}

@InProceedings{fluet:2002:phantom-types,
  Address =	 {{M}ontreal, {Q}uebec, {C}anada},
  Author =	 {Matthew Fluet and Riccardo Pucella},
  Booktitle =	 {{I}nternational {C}onference on {T}heoretical
                  {C}omputer {S}cience {(TCS)}},
  Month =	 aug,
  Pages =	 {448--460},
  Publisher =	 {Kluwer},
  Title =	 {{P}hantom {T}ypes and {S}ubtyping},
  Year =	 2002
}

@InProceedings{foote:2005:efficient-multimethods,
  Author =	 {Brian Foote and Ralph E. Johnson and James Noble},
  Booktitle =	 ecoop,
  Pages =	 {337--361},
  Publisher =	 sv,
  Title =	 {Efficient Multimethods in a Single Dispatch
                  Language},
  Volume =	 3586,
  Year =	 2005
}

@Misc{foote:www:hat,
  Author =	 {Bill Foote},
  Howpublished = {\url{http://java.sun.com/people/billf/heap/}},
  Title =	 {Heap Analysis Tool},
  Year =	 2002
}

@Book{fowler:2000:refactoring,
  Author =	 {Martin Fowler},
  Publisher =	 {Addison-Wesley},
  Title =	 {Refactoring: Improving the Design of Existing Code},
  Year =	 2000
}

@InProceedings{gagnon:2001:sablevm,
  Author =	 {Etienne Gagnon and Laurie Hendren},
  Booktitle =	 {Java Virtual Machine Research and Technology
                  Symposium (JVM)},
  Title =	 {SableVM: A Research Framework for the Efficient
                  Execution of Java Bytecode},
  Year =	 2001
}

@Book{gamma:1994:patternbook,
  Author =	 {Erich Gamma and Richard Helm and Ralph E. Johnson
                  and John Vlissides},
  Publisher =	 aw,
  Subtitle =	 {Elements of Reusable Object-Oriented Software},
  Title =	 {Design Patterns},
  Year =	 1994
}

@Misc{gd:www:web-site,
  Author =	 {Gwydion Dylan},
  Howpublished = {\url{http://www.gwydiondylan.org/}},
  Title =	 {Gwydion Dylan Project Web Site},
  Year =	 2003
}

@InProceedings{genius:1998:sandwich-types,
  Address =	 {Kyoto, Japan},
  Author =	 {Daniela Genius and Martin Trapp and Wolf Zimmermann},
  Booktitle =	 {Proceedings of the 2nd Types in Compilation
                  Workshop},
  Title =	 {An Approach to Improve Locality using Sandwich
                  Types},
  Year =	 1998
}

@InProceedings{georges:2007:statistically-regorous-java,
  author =	 {Andy Georges and Dries Buytaert and Lieven Eeckhout},
  title =	 {Statistically Rigorous Java Performance Evaluation},
  booktitle =	 oopsla,
  pages =	 {57--76},
  year =	 2007,
  address =	 {Montreal, Quebec, Canada},
  month =	 oct,
  publisher =	 acm
}

@InProceedings{ghiya:1996:shape-analysis,
  Author =	 {Rakesh Ghiya and Laurie J. Hendren},
  Booktitle =	 {Symposium on Principles of Programming Languages},
  Pages =	 {1-15},
  Title =	 {Is it a Tree, a {DAG}, or a Cyclic Graph? A Shape
                  Analysis for Heap-Directed Pointers in {C}},
  Year =	 1996
}

@InProceedings{gil:2005:micro-patterns,
  Address =	 {San Diego, CA, USA},
  Author =	 {Joseph (Yossi) Gil and Itay Maman},
  Booktitle =	 oopsla,
  Pages =	 {97--116},
  Publisher =	 acm,
  Title =	 {Micro patterns in {J}ava code},
  Year =	 2005
}

@Book{goldberg:1983:smalltalk,
  Author =	 {A. Goldberg and D. Robson},
  Publisher =	 aw,
  Title =	 {Smalltalk-80: {T}he {L}anguage and its
                  {I}mplementation},
  Year =	 1983
}

@TechReport{goldstien:1996:gateway,
  Author =	 {T. Goldstein},
  Institution =	 {Sun Microsystems Laboratories -- {J}avasoft},
  Month =	 dec,
  Title =	 { The gateway security model in the {Ja}va electronic
                  commerce framework},
  Year =	 1996
}

@MastersThesis{gordon:2006:msc,
  Author =	 {Donald Gordon},
  School =	 {School of Mathematics, Statistics, and Computer
                  Science. Victoria University of Wellington},
  Title =	 {Encapsulation Enforcement with Dynamic Ownership},
  Year =	 2007
}

@Book{gosling:1996:java,
  Author =	 {James Gosling and Bill Joy and Guy Steele},
  Publisher =	 aw,
  Title =	 {The {J}ava Language Specification},
  Year =	 1996
}

@Book{gosling:2005:java,
  Author = {James Gosling and Bill Joy and Guy Steele and Gilad Bracha},
  Publisher = aw,
  Title = {The {J}ava Language Specification, 3rd Edition},
  Year = 2005
}

@InProceedings{gregor:2006:concepts,
  Address =	 {Portland, Oregon, USA},
  Author =	 {Douglas Gregor and Jaakko Jarvi and Jeremy Siek and
                  Bjarne Stroustrup and Gabriel Dos Reis and Andrew
                  Lumsdaine},
  Booktitle =	 oopsla,
  Month =	 {October},
  Pages =	 {291--310},
  Publisher =	 acm,
  Title =	 {Concepts: First-Class Language Support for Generic
                  Programming in {C}++},
  Year =	 2006
}

@TechReport{griesemer:1994:detection-of-side-effects,
  Author =	 {Robert Griesemer},
  Institution =	 {International {C}omputer {S}ience {Institute},
                  {Berkeley}},
  Month =	 aug,
  Number =	 {TR-94-032},
  Title =	 {Detection of {S}ide-{E}ffects in {F}unction
                  {P}rocedures},
  Year =	 1994
}

@InProceedings{grogono:1993:equality,
  Address =	 {Bratislava, Slovakia},
  Author =	 {Peter Grogono and Philip Santas},
  Booktitle =	 {{EastEurOOPe'93}},
  Title =	 {Equality in Object-oriented Languages},
  Year =	 1993
}

@InProceedings{grogono:1994:copying-sharing-aliasing,
  Address =	 {Montreal, Quebec},
  Author =	 {Peter Grogono and Patrice Chalin},
  Booktitle =	 {Proceedings of the Colloquium on Object Orientation
                  in Databases and Software Engineering
                  ({COODBSE'94})},
  Month =	 may,
  Title =	 {Copying, Sharing, and Aliasing},
  Year =	 1994
}

@InProceedings{grogono:2000:ecoop,
  Author =	 {Peter Grogono and Markku Sakkinen},
  Booktitle =	 ecoop,
  Month =	 jun,
  Title =	 {Copying and {C}omparing: {P}roblems and {S}olutions},
  Year =	 2000
}

@InProceedings{grossman:2002:pldi,
  Address =	 acm-address,
  Author =	 {Dan Grossman and J. Gregory Morrisett and Trevor Jim
                  and Michael W. Hicks and Yanling Wang and James
                  Cheney},
  Booktitle =	 pldi,
  Pages =	 {282-293},
  Publisher =	 acm,
  Title =	 {Region-Based Memory Management in {C}yclone.},
  Year =	 2002
}

@InProceedings{grothoff:2001:kacheck,
  Address =	 {{T}ampa {B}ay, {FL}, {USA}},
  Author =	 {Christian Grothoff and Jens Palsberg and Jan Vitek},
  Booktitle =	 oopsla,
  Pages =	 {241--255},
  Publisher =	 acm,
  Title =	 {{E}ncapsulating {O}bjects with {C}onfined {T}ypes},
  Year =	 2001
}

@InProceedings{haack:2009:obj-imm,
  author =	 {Christian Haack and Erik Poll},
  title =	 {Type-based object immutability with flexible
                  initialization},
  booktitle =	 ecoop,
  pages =	 {520--545},
  year =	 2009
}

@InProceedings{HaackPSS2007,
  author =	 {Christian Haack and Erik Poll and Jan Sch{\"a}fer
                  and Aleksy Schubert},
  title =	 {Immutable Objects for a Java-Like Language},
  booktitle =	 {ESOP},
  year =	 2007,
  pages =	 {347-362},
  ee =		 {http://dx.doi.org/10.1007/978-3-540-71316-6_24}
}

@InProceedings{hagimont:1996:hidden,
  Address =	 {Hong Kong},
  Author =	 {Daniel Hagimont and J. Mossi{\`e}re and Xavier
                  Rousset de Pina and F. Saunier},
  Booktitle =	 {16th International Conference on Distributed
                  Computing System},
  Month =	 may,
  Publisher =	 {{IEEE} CS Press},
  Title =	 {Hidden Software Capabilities},
  Year =	 1996
}

@Article{harms:1991:copying-and-swapping,
  Author =	 {D. E. Harms and B. Weide},
  Journal =	 {IEEE Transactions of Software Engineering},
  Note =	 {{IEEE} CS Press},
  Number =	 5,
  Pages =	 {424-435},
  Title =	 {Copying and swapping: influences on the design of
                  reusable components.},
  Volume =	 17,
  Year =	 1991
}

@InProceedings{hendren:1992:designing-for-analyzability,
  Author =	 {Laurie J. Hendren and G. R. Gao},
  Booktitle =	 {Proceedings of the {IEEE} 1992 {I}nternational
                  {C}onference on {P}rogramming {L}anguages},
  Month =	 apr,
  Title =	 {Designing programming languages for analyzability:
                  {A} fresh look at pointer data structures},
  Year =	 1992
}

@TechReport{hennessey:1998:access-control,
  Author =	 {Matthew Hennessy and James Riely},
  Institution =	 {University of {S}ussex},
  Month =	 {February},
  Number =	 {2/98},
  Title =	 {{R}esource {C}ontrol in {S}ystems of {M}obile
                  {A}gents},
  Year =	 1998
}

@InProceedings{hill:2000:scalable-visualisations-with-ownership-trees,
  Address =	 {Sydney, Australia},
  Author =	 {Trent Hill and James Noble and John Potter},
  Booktitle =	 {Proceedings of TOOLS Pacific 2000},
  Publisher =	 {{IEEE} CS Press},
  Title =	 {Scalable visualisations with ownership trees},
  Year =	 2000
}

@Article{hill:2002:jvlc,
  Author =	 {Trent Hill and James Noble and John Potter},
  Journal =	 {Journal of Visual Languages and Computation},
  Month =	 jun,
  Number =	 3,
  Pages =	 {319--339},
  Title =	 {Scalable Visualizations of Object-Oriented Systems
                  with Ownership Trees},
  Volume =	 13,
  Year =	 2002
}

@Misc{hinze:1999:constructing,
  Author =	 {R. Hinze},
  Title =	 {Constructing Red-Black Trees},
  Url =
                  {citeseer.nj.nec.com/Article/hinze99constructing.html},
  Year =	 1999,
  Bdsk-Url-1 =
                  {citeseer.nj.nec.com/Article/hinze99constructing.html}
}

@Book{hinze:2003:phantom,
  Author =	 {Ralf Hinze},
  Chapter =	 {{F}un with {P}hantom {T}ypes},
  Note =	 {Editors: Jeremy Gibbons and Oege de Moor},
  Pages =	 {245--262},
  Publisher =	 {Palgrave Macmillan},
  Title =	 {{T}he {F}un of {P}rogramming},
  Year =	 2003
}

@InProceedings{hobatr:2001:the-design-of-an-ocl-query-based-debugger,
  Author =	 {Chanika Hobatr and Brian A. Malloy},
  Booktitle =	 {Proceedings of the 16th ACM SAC2001 Symposium on
                  Applied Computing},
  Title =	 {The design of {OCL} query-based debugger for {C++}},
  Year =	 2001
}

@InCollection{hofmann:1997:dependent,
  Author =	 {Martin Hofmann},
  Booktitle =	 {Semantics of Logics of Computation},
  Editor =	 {P. Dybjer and A. Pitts},
  Publisher =	 {Cambridge University Press},
  Title =	 {Syntax and Semantics of Dependent Types},
  Year =	 1997
}

@InProceedings{hogg:1991:islands,
  Address =	 {{P}hoenix, {AZ}, {USA}},
  Author =	 {John Hogg},
  Booktitle =	 oopsla,
  Journal =	 {ACM SIGPLAN Notices},
  Month =	 nov,
  Pages =	 {271--285},
  Publisher =	 acm,
  Title =	 {{I}slands: {A}liasing {P}rotection in
                  {O}bject-{O}riented {L}anguages},
  Volume =	 26,
  Year =	 1991
}

@Article{hogg:1992:geneva,
  Author =	 {John Hogg and Doug Lea and Alan Wills and Dennis de
                  Champeaux and Richard Holt},
  Journal =	 {{OOPS} Messenger},
  Month =	 {April},
  Number =	 2,
  Pages =	 {11--16},
  Title =	 {The {Geneva} convention of the treatment of object
                  aliasing},
  Volume =	 3,
  Year =	 1992
}

@InProceedings{holmes:1997:tools,
  Author =	 {David Holmes and James Noble and John Potter},
  Booktitle =	 {{TOOLS} {P}acific 25},
  Title =	 {Aspects of Synchronisation},
  Year =	 1997
}

@Misc{ibm:www:jinsight,
  Author =	 {{IBM AlphaWorks}},
  Howpublished = {Available at:
                  \url{http://www.alphaworks.ibm.com/tech/jinsight/}},
  Title =	 {Jinsight},
  Year =	 2003
}

@Article{igarashi:2001:fj,
  Author =	 {Atsushi Igarashi and Benjamin C. Pierce and Philip
                  Wadler},
  Journal =	 toplas,
  Month =	 may,
  Number =	 3,
  Pages =	 {396--450},
  Title =	 {{F}eatherweight {J}ava: a Minimal Core Calculus for
                  {J}ava and {GJ}},
  Volume =	 23,
  Year =	 2001
}

@InProceedings{igarashi:2001:raw-types,
  Address =	 {London, United Kingdom},
  Author =	 {Atsushi Igarashi and Benjamin C. Pierce and Philip
                  Wadler},
  Booktitle =	 fool,
  Publisher =
                  {\url{http://www.research.att.com/~kfisher/FOOL/FOOL8.html}},
  Title =	 {A Recipe for Raw Types},
  Year =	 2001
}

@InProceedings{igarashi:2002:variance,
  Address =	 {Malaga, Spain},
  Author =	 {Atsushi Igarashi and Mirko Viroli},
  Booktitle =	 ecoop,
  Month =	 jun,
  Note =	 {To appear in {ACM Transactions on Programming
                  Languages and Systems}.},
  Pages =	 {441--469},
  Publisher =	 sv,
  Title =	 {On Variance-Based Subtyping for Parametric Types},
  Year =	 2002
}

@InCollection{jones:1981:flow-analysis,
  Author =	 {Neil D. Jones and Steven Muchnick},
  Booktitle =	 {Program {F}low {A}nalysis: {Theory} and
                  {A}pplications},
  Editor =	 {Steven Muchnick and Neil D. Jones},
  Publisher =	 {Prentice {H}all},
  Title =	 {Flow analysis and optimization of {LISP}-like
                  structures},
  Year =	 1981
}

@Book{jones:1996:gc,
  Author =	 {Richard Jones and Raphael Lins},
  Publisher =	 {Wiley},
  Title =	 {Garbage Collection},
  Year =	 1996
}

@InProceedings{kennedy:2001:generic-dot-net,
  Address =	 acm-address,
  Author =	 {Andrew Kennedy and Don Syme},
  Booktitle =	 pldi,
  Publisher =	 acm,
  Title =	 {The Design and Implementation of {G}enerics for the
                  {.NET} {C}ommon {L}anguage {R}untime},
  Year =	 2001
}

@InProceedings{kennedy:2005:gadt,
  Address =	 {San Diego, CA, USA},
  Author =	 {Andrew Kennedy and Claudio Russo},
  Booktitle =	 oopsla,
  Publisher =	 acm,
  Title =	 {Generalized Algebraic Data Types and Object-Oriented
                  Programming},
  Year =	 2005
}

@InProceedings{kent:1995:encapsulation,
  Author =	 {Stuart Kent and Ian Maung},
  Booktitle =	 {{TOOLS} {P}acific 18},
  Title =	 {Encapsulation and Aggregation},
  Year =	 1995
}

@InProceedings{kent:1996:value,
  Address =	 {Paris},
  Author =	 {Stuart Kent and John Howse},
  Booktitle =	 {TOOLS 19},
  Title =	 {Value Types in {E}iffel},
  Year =	 1996
}

@TechReport{kernighan:1983:on-pascal,
  Author =	 {Brian Kernighan},
  Institution =	 {Bell Labs},
  Number =	 100,
  Title =	 {Why {P}ascal is not my Favourite Programming
                  Language},
  Year =	 1983
}

@InProceedings{kiczales:1997:aop,
  Author =	 {Gregor Kiczales and John Lamping and Anurag
                  Mendhekar and Chris Maeda and Cristina Lopes and
                  Jean-Marc Loingtier and John Irwin},
  Booktitle =	 ecoop,
  Pages =	 {220--242},
  Publisher =	 sv,
  Title =	 {Aspect-Oriented Programming},
  Volume =	 1241,
  Year =	 1997
}

@InProceedings{kiczales:2001:overview,
  Author =	 {Gregor Kiczales and Erik Hilsdale and Jim Hugunin
                  and Mik Kersten and Jeffrey Palm and William
                  G. Griswold},
  Booktitle =	 ecoop,
  Pages =	 {327--355},
  Publisher =	 sv,
  Title =	 {An Overview of {AspectJ}},
  Volume =	 2072,
  Year =	 2001
}

@Article{kniesel:2001:jac,
  Author =	 {Gunter Kniesel and Dirk Theisen},
  Journal =	 {Software: Practice and Experience},
  Number =	 6,
  Title =	 {{JAC} - access right based encapsulation for {J}ava},
  Volume =	 31,
  Year =	 2001
}

@inproceedings{lam:1999:soot,
  author =	 {Vall\'{e}e-Rai, Raja and Co, Phong and Gagnon,
                  Etienne and Hendren, Laurie and Lam, Patrick and
                  Sundaresan, Vijay},
  title =	 {Soot - a Java bytecode optimization framework},
  booktitle =	 {Proceedings of the 1999 conference of the Centre for
                  Advanced Studies on Collaborative research},
  series =	 {CASCON '99},
  year =	 1999,
  location =	 {Mississauga, Ontario, Canada},
  pages =	 {13--},
  url =		 {http://portal.acm.org/citation.cfm?id=781995.782008},
  acmid =	 782008,
  publisher =	 {IBM Press},
}

@InProceedings{lamport:1985:constraints,
  Address =	 {New Orleans, Louisiana},
  Author =	 {Leslie Lamport and Fred B. Schneider},
  Booktitle =	 popl,
  Pages =	 {205--216},
  Publisher =	 acm,
  Title =	 {Constraints: {A} Uniform Approach to Aliasing and
                  Typing},
  Year =	 1985
}

@Article{landi:1992:undecidability,
  Author =	 {William Landi},
  Journal =	 {{ACM} {L}etters on {P}rogramming {L}anguages and
                  {S}ystems},
  Month =	 dec,
  Number =	 4,
  Title =	 {{U}ndecidability of {S}tatic {A}nalysis},
  Volume =	 1,
  Year =	 1992
}

@Article{launchbury:1995:state-in-haskell,
  Author =	 {John Launchbury and Simon L. {Peyton Jones}},
  Journal =	 {{L}isp and {S}ymbolic {C}omputation},
  Month =	 dec,
  Number =	 4,
  Pages =	 {293--341},
  Title =	 {{S}tate in {H}askell},
  Volume =	 8,
  Year =	 1995
}

@InProceedings{leavens:1998:md-tuples,
  Author =	 {Gary T. Leavens and Todd Millstein},
  Booktitle =	 oopsla,
  Pages =	 {274--287},
  Publisher =	 acm,
  Title =	 {Multiple Dispatch as Dispatch on Tuples},
  Year =	 1998
}

@InProceedings{leijen:1999:phantom,
  Address =	 {{B}erkeley, {CA}, {USA}},
  Author =	 {Daan Leijen and Erik Meijer},
  Booktitle =	 {{P}roceedings of the 2nd {C}onference on
                  {D}omain-{S}pecific {L}anguages},
  Month =	 oct,
  Pages =	 {109--122},
  Publisher =	 {{USENIX} {A}ssociation},
  Title =	 {{D}omain-{S}pecific {E}mbedded {C}ompilers},
  Year =	 1999
}

@InProceedings{leino:1998:oopsla,
  Author =	 {K. Rustan M. Leino},
  Booktitle =	 oopsla,
  Title =	 {Data {G}roups: {S}pecifying the {M}odification of
                  {E}xtended {S}tate},
  Year =	 1998
}

@Article{leino:1999:ecstasy-virginity,
  Author =	 {K. Rustan M. Leino and Raymie Stata},
  Journal =	 {Information Processing Letters},
  Month =	 {April},
  Number =	 2,
  Pages =	 {99-105},
  Title =	 {Virginity: A contribution to the specification of
                  object-oriented software},
  Volume =	 70,
  Year =	 1999
}

@InProceedings{leino:2002:data-groups-side-effects,
  Author =	 {Leino, K. Rustan M. and Poetzsh-Heffter, Arnd and
                  Zhou, Yunhong},
  Booktitle =	 pldi,
  Month =	 {June},
  Number =	 5,
  Pages =	 {246--257},
  Title =	 {Using Data Groups to Specify and Check Side Effects},
  Volume =	 37,
  Year =	 2002
}

@InProceedings{leino:2004:object-invariants,
  Address =	 {Oslo, Norway},
  Author =	 {K. Rustan M. Leino and Peter M{\"u}ller},
  Booktitle =	 ecoop,
  Publisher =	 sv,
  Title =	 {Object Invariants in Dynamic Contexts},
  Year =	 2004
}

@Book{lencevicius:2000:advanced-debugging-methods,
  Author =	 {Raimondas Lencevicius},
  Month =	 {August},
  Publisher =	 {Kluwer Academic Publishers},
  Title =	 {Advanced Debugging Methods},
  Year =	 2000
}

@Article{lengauer:1979:fast-algorithm-for-finding-dominators,
  Author =	 {Thomas Lengauer and Robert Endre Tarjan},
  Journal =	 {ACM Transactions on Programming Languages and
                  Systems},
  Month =	 {July},
  Number =	 1,
  Pages =	 {121-141},
  Title =	 {A fast algorithm for finding dominators in a
                  flowgraph},
  Volume =	 1,
  Year =	 1979
}

@InProceedings{leroy:1998:secure-applets,
  Author =	 {Xavier Leroy and Fran\c{c}ois Rouaix},
  Booktitle =	 {25th {ACM} conference on {P}rinciples of
                  {P}rogramming {L}anguages},
  Month =	 {January},
  Title =	 {Security Properies of typed applets},
  Year =	 1998
}

@InProceedings{li:2008:towards,
  author =	 {Paley Li and Alex Potanin and James Noble and
                  Lindsay Groves},
  title =	 {Towars Unifying Ownership and Immutability},
  booktitle =	 iwaco,
  year =	 2008
}

@TechReport{li:2009:foigj-tr,
  author =	 {Yoav Zibin and Alex Potanin and Paley Li and Michael
                  D. Ernst},
  title =	 {{F}eatherweight {O}wnership and {I}mmutability
                  {G}eneric {J}ava {(FOIGJ)}},
  institution =	 {School of Engineering and Computer Science, VUW},
  year =	 2009,
  number =	 {09-01},
  note =
                  {\url{http://ecs.victoria.ac.nz/Main/TechnicalReportSeries}}
}

@Article{liebermann:1986:prototypical,
  Author =	 {Henry Liebermann},
  Booktitle =	 oopsla,
  Journal =	 {SIGPLAN Notices},
  Month =	 {November},
  Number =	 11,
  Pages =	 {214--223},
  Title =	 {Using Prototypical Objects to Implement Shared
                  Behaviour in Object-oriented Systems},
  Volume =	 21,
  Year =	 1986
}

@InCollection{liu:1998:concurrent-objects-mobile,
  Author =	 {Xinxin Liu and David Walker},
  Booktitle =	 {Proof, Language and Interaction: Essays in Honour of
                  Robin Milner},
  Editor =	 {G. Plotkin, C. Stirling and M. Tofte},
  Publisher =	 {MIT Press},
  Title =	 {Concurrent Objects as Mobile Processes},
  Year =	 1998
}

@InProceedings{lu:2005:acyc,
  Address =	 {Glasgow, Scotland},
  Author =	 {Yi Lu and John Potter},
  Bibsource =	 {DBLP, http://dblp.uni-trier.de},
  Booktitle =	 ecoop,
  Ee =		 {http://dx.doi.org/10.1007/11531142_21},
  Pages =	 {479-503},
  Publisher =	 {Springer},
  Series =	 {Lecture Notes in Computer Science},
  Title =	 {A Type System for Reachability and Acyclicity.},
  Volume =	 3586,
  Year =	 2005
}

@InProceedings{lu:2006:effect,
  Address =	 acm-address,
  Author =	 {Yi Lu and John Potter},
  Booktitle =	 popl,
  Publisher =	 acm,
  Title =	 {Protecting Representation with Effect Encapsulation},
  Year =	 2006
}

@InProceedings{lu:2006:owner-accessibility,
  Author =	 {Yi Lu and John Potter},
  Booktitle =	 ecoop,
  Publisher =	 sv,
  Title =	 {Ownership and Accessibility},
  Year =	 2006
}

@InProceedings{lucassen:1988:effect-systems,
  Author =	 {John M. Lucassen and David K. Gifford},
  Booktitle =	 {Proceedings of the {E}ighteenth {A}nnual {ACM
                  SIGACT-SIGPLAN} {S}ymposium on {P}rinciples of
                  {P}rogramming {L}anguages},
  Month =	 jan,
  Title =	 {Polymorphic effect systems},
  Year =	 1988
}

@InProceedings{ma:2007:inferring-aliasing,
  Address =	 {Montreal, Quebec, Canada},
  Author =	 {Kin-Keung Ma and Jeffrey S. Foster},
  Booktitle =	 oopsla,
  Pages =	 {423--440},
  Publisher =	 acm,
  Title =	 {Inferring aliasing and encapsulation properties for
                  {J}ava},
  Year =	 2007
}

@Article{maclennan:1982:values,
  Author =	 {B. J. MacLennan},
  Journal =	 sigplan,
  Month =	 dec,
  Number =	 12,
  Title =	 {Values and objects in programming languages},
  Volume =	 17,
  Year =	 1982
}

@InProceedings{madsen:1992:location,
  Author =	 {Ole Lehrmann Madsen and Birger M{\o}ller-Pedersen},
  Booktitle =	 {Proceedings of the seventh international conference
                  on Technology of object-oriented languages and
                  systems},
  Isbn =	 {0-13-917436-2},
  Location =	 {Dortmund, Germany},
  Pages =	 {283--297},
  Publisher =	 {Prentice Hall International (UK) Ltd.},
  Title =	 {Part objects and their location},
  Year =	 1992
}

@Book{madsen:1993:betabook,
  Author =	 {Ole Lehrmann Madsen and Birger M{\o}ller-Pedersen
                  and Kirsten Nygaard},
  Publisher =	 aw,
  Title =	 {Object-Oriented Programming in the {BETA}
                  Programming Language},
  Year =	 1993
}

@InProceedings{mariani:2005:behavior,
  Abstract =	 {Component-based technology is increasingly adopted
                  to speed up the development of complex software
                  through component reuse.  Unfortunately, the lack of
                  complete information about reused components, and
                  the complex interaction patterns among components
                  can lead to subtle problems that throw new
                  verification challenges.  Good components are often
                  re-used many times, sometimes within product lines,
                  in other cases across different products. The reuse
                  of components provides a lot of information that
                  could be useful for verification.  In this paper, we
                  show how to automatically analyze component
                  interactions by collecting information about
                  components' behavior during testing and field
                  execution, and then using the collected information
                  for checking the compatibility of components when
                  updated or reused in new products.  The paper
                  illustrates the main problems in developing the
                  idea, proposes original solutions, and presents a
                  preliminary experience that illustrates the
                  effectiveness of the approach.},
  Address =	 ICECCS2005addr,
  Author =	 {Leonardo Mariani and Mauro Pezz{\`e}},
  Basefilename = {mariani-eccs-2005},
  Booktitle =	 ICECCS2005,
  Downloads =
                  {http://www.lta.disco.unimib.it/homepage/leonardo.mariani/pdf/iceccs05.pdf
                  PDF},
  Month =	 ICECCS2005date,
  Pages =	 {292--301},
  Title =	 {Behavior capture and test: Automated analysis of
                  component integration},
  Usesdaikon =	 1,
  Year =	 2005
}

@TechReport{matsuoka:1990:synchronisation,
  Author =	 {S. Matsuoka and K. Wakita and A. Yonezawa},
  Institution =	 {Dept. of Information Science, University of Tokyo},
  Title =	 {Sychronisation Constraints with Inheritance: {W}hat
                  is not Possible? --- so what is?},
  Year =	 1990
}

@Article{melton:2007:cycles-in-classes,
  Author =	 {Hayden Melton and Ewan Tempero},
  Journal =	 {Empirical Software Engineering},
  Month =	 aug,
  Number =	 4,
  Pages =	 {389--415},
  Title =	 {An empirical study of cycles among classes in
                  {J}ava},
  Volume =	 12,
  Year =	 2007
}

@Book{meyer:1988:oosc,
  Author =	 {Bertrand Meyer},
  Date-Modified ={2008-08-22 09:29:30 +1200},
  Publisher =	 {Prentice Hall},
  Title =	 {Object-oriented Software Construction},
  Year =	 1988
}

@Book{meyer:1992:eiffel,
  Author =	 {Bertrand Meyer},
  Publisher =	 {Prentice Hall},
  Title =	 {Eiffel: {T}he {L}anguage},
  Year =	 1992
}

@Misc{microsoft:www:gyro,
  Author =	 {Microsoft},
  Howpublished =
                  {\url{http://research.microsoft.com/projects/clrgen/}},
  Title =	 {Gyro: {.NET} generics},
  Year =	 2003
}

@Misc{microsoft:www:net,
  Author =	 {Microsoft},
  Howpublished = {\url{http://msdn.microsoft.com/net/}},
  Title =	 {{The .NET Common Language Runtime}},
  Year =	 2003
}

@Article{milner:1978:type-polymorphism,
  Author =	 {Robin Milner},
  Journal =	 {Journal of Computer and System Sciences},
  Pages =	 {348--375},
  Title =	 {Theory of Type Polymorphism in Programming},
  Volume =	 {17(3)},
  Year =	 1978
}

@Article{milner:1992:pi-calculus,
  Author =	 {Robin Milner and Joachim Parrow and David Walker},
  Journal =	 {Information and Computation},
  Month =	 {September},
  Pages =	 {1-77},
  Title =	 {A calculus of mobile processes, {P}arts {I} and
                  {II}},
  Volume =	 100,
  Year =	 1992
}

@InProceedings{minsky:1996:towards,
  Author =	 {Naftaly Minsky},
  Booktitle =	 ecoop,
  Month =	 jul,
  Title =	 {Towards Alias-Free Pointers},
  Year =	 1996
}

@InProceedings{mitchell:2003:leakbot,
  Author =	 {Nick Mitchell and Gary Sevitsky},
  Booktitle =	 ecoop,
  Month =	 {July},
  Publisher =	 sv,
  Series =	 {Lecture Notes in Computer Science},
  Title =	 {LeakBot: An Automated and Lightweight Tool for
                  Diagnosing Memory Leaks in Large Java Applications},
  Year =	 2003
}

@InProceedings{mitchell:2006:runtime-ownership,
  Address =	 {Nantes, France},
  Author =	 {Nick Mitchell},
  Booktitle =	 ecoop,
  Month =	 jul,
  Pages =	 {74--98},
  Publisher =	 sv,
  Series =	 lncs,
  Title =	 {The Runtime Structure of Object Ownership},
  Volume =	 4067,
  Year =	 2006
}

@InProceedings{mitchell:2009:large-heaps,
  author =	 {Nick Mitchell and Edith Schonberg and Gary Sevitsky},
  title =	 {Making Sense of Large Heaps},
  booktitle =	 ecoop,
  pages =	 {77--97},
  year =	 2009,
  publisher =	 sv
}

@InProceedings{mueller:2001:applet-isolation,
  Author =	 { M\"{u}ller, P. and Poetzsh-Heffter, A. },
  Booktitle =	 ftfjp,
  Title =	 { A Type System for Checking Applet Isolation in
                  {J}ava {C}ard },
  Year =	 2001
}

@TechReport{mueller:2001:universes,
  Author =	 {P. M{\"u}ller and A. Poetzsh-Heffter},
  Chapter =	 {{U}niverses: a {T}ype {S}ystem for {C}ontrolling
                  {R}epresentation {E}xposure},
  Institution =	 {{F}ernuniversit{\"a}t {H}agen},
  Note =	 {Poetzsh-Heffter, A. and Meyer, J. (editors)},
  Title =	 {{P}rogramming {L}anguages and {F}undamentals of
                  {P}rogramming},
  Year =	 2001
}

@InProceedings{mugridge:1991:multimethods-statically,
  Author =	 {Warwick Mugridge and John Hamer and John Hosking},
  Booktitle =	 ecoop,
  Pages =	 {147--155},
  Publisher =	 sv,
  Title =	 {Multi-Methods in a Statically Typed Programming
                  Language},
  Volume =	 512,
  Year =	 1991
}

@InProceedings{muller:ownership-transfer:02,
  author =	 {Peter M\"{u}ller and Arsenii Rudich},
  title =	 {Ownership transfer in universe types},
  booktitle =	 {OOPSLA2002},
  year =	 2002,
  pages =	 {461--478},
}

@Misc{munzner:www:h3viewer,
  Author =	 {Tamara Munzner},
  Howpublished = {\url{http://graphics.stanford.edu/~munzner/h3/}},
  Title =	 {H3Viewer},
  Year =	 2002
}

@InProceedings{myers:1997:parameterized,
  Author =	 {Andrew C Myers and Joseph A. Bank and Barbara
                  Liskov},
  Booktitle =	 popl,
  Title =	 {{Parameterized Types for Java}},
  Year =	 1997
}

@InProceedings{naden:2012:borrowing-permissions,
  author =	 {Karl Naden and Robert Bocchino and Jonathan Aldrich
                  and Kevin Bierhoff},
  title =	 {A Type System for Borrowing Permissions},
  booktitle = popl,
  pages =	 {557--570},
  year =	 2012,
  publisher = acm}

@Book{naftalin:CollectionsBook:2006,
  author =	 {Naftalin,, Maurice and Wadler,, Philip},
  title =	 {Java Generics and Collections},
  year =	 2006,
  isbn =	 0596527756,
  publisher =	 {O'Reilly Media, Inc.},
}

@MastersThesis{nageli:2006:ownership-design-patterns,
  Author =	 {Stefan N{\"a}geli},
  School =	 {Software Component Technology Group, Department of
                  Computer Science, ETH Zurich},
  Title =	 {Ownership in Design Patterns},
  Year =	 2006
}

@Misc{niemeyer:www:beanshell,
  Author =	 {Pat Niemeyer and Daniel Leuck},
  Howpublished = {\url{http://www.beanshell.org/}},
  Title =	 {{BeanShell --- Lightweight Scripting for Java}},
  Year =	 2003
}

@Article{noble:1995:tarraingim,
  Author =	 {James Noble and Lindsay J. Groves and Robert
                  L. Biddle},
  Journal =	 {Australian Computer Journal},
  Month =	 nov,
  Number =	 4,
  Title =	 {Object Oriented Program Visualisation in
                  Tarraing{\'\i}m},
  Volume =	 27,
  Year =	 1995
}

@InProceedings{noble:1997:change,
  Address =	 {Sydney, Australia},
  Author =	 {James Noble and John Potter},
  Booktitle =	 {Australian Software Engineering Conference},
  Publisher =	 {IEEE Press},
  Title =	 {Change Detection for Aggregate Objects with
                  Aliasing},
  Year =	 1997
}

@InProceedings{noble:1998:flap,
  Author =	 {James Noble and Jan Vitek and John Potter},
  Booktitle =	 ecoop,
  Month =	 jul,
  Pages =	 {158--185},
  Publisher =	 sv,
  Series =	 lncs,
  Title =	 {{F}lexible {A}lias {P}rotection},
  Volume =	 1445,
  Year =	 1998
}

@InProceedings{noble:2000:iterators,
  Author =	 {James Noble},
  Booktitle =	 {TOOLS Pacific},
  Title =	 {Iterators and Encapsulation},
  Year =	 2000
}

@Article{noble:2001:speissue,
  Author =	 {James Noble and Doug Lea},
  Journal =	 {Software -- Practice and Experience},
  Month =	 {May},
  Number =	 6,
  Title =	 {Special Issue on Aliasing in Object-Oriented
                  Systems},
  Volume =	 31,
  Year =	 2001
}

@TechReport{noble:2003:ogj,
  Author =	 {James Noble and Robert Biddle},
  Institution =	 {{S}chool of {M}athematics, {S}tatistics, and
                  {C}omputer {S}cience, {V}ictoria {U}niversity of
                  {W}ellington, {N}ew {Z}ealand},
  Month =	 may,
  Number =	 {VUW-CS-TR-03/9},
  Title =	 {{Oh! Gee! Java!} --- {O}wnership {T}ypes (almost)
                  for {F}ree},
  Year =	 2003
}

@InCollection{noble:2003:tamoe,
  Author =	 {James Noble and Robert Biddle and Ewan Tempero and
                  Alex Potanin and Dave Clarke},
  Booktitle =	 iwaco,
  Editor =	 {Dave Clarke},
  Month =	 jul,
  Number =	 030,
  Publisher =	 {Utrecht University},
  Series =	 {UU-CS-2003},
  Title =	 {{T}owards a {M}odel of {E}ncapsulation},
  Year =	 2003
}

@InProceedings{ocallahan:1997:lackwit,
  Address =	 {Boston, USA},
  Author =	 {Robert O'Callahan and Daniel Jackson},
  Booktitle =	 icse,
  Month =	 {May},
  Publisher =	 acm,
  Title =	 {Lackwit: a program understanding tool based on type
                  inference},
  Year =	 1997
}

@TechReport{odersky:1993:local-names,
  Author =	 {Martin Odersky},
  Institution =	 {Yale University},
  Month =	 {May},
  Number =	 {YALEU/DC/RR-965},
  Title =	 {A Syntactic Theory of Local Names},
  Year =	 1993
}

@InProceedings{odersky:1994:functional-names,
  Author =	 {Martin Odersky},
  Booktitle =	 {21th {ACM} conference on {P}rinciples of
                  {P}rogramming {L}anguages},
  Month =	 {January},
  Title =	 {A Functional Theory of Local Names},
  Year =	 1994
}

@InProceedings{odersky:1997:pizza,
  Author =	 {Martin Odersky and Philip Wadler},
  Booktitle =	 popl,
  Month =	 {January},
  Title =	 {{Pizza} into {Java}: Translating theory into
                  practice},
  Year =	 1997
}

@InProceedings{oestlund:2008:oui,
  Author =	 {Johan \"Ostlund and Tobias Wrigstad and Dave Clarke
                  and Beatrice {\AA}kerblom},
  Booktitle =	 {{TOOLS} {E}urope 2008},
  Title =	 {Ownership, Uniqueness and Immutability},
  Year =	 2008
}

@InProceedings{ohearn:1995:syntactic,
  Author =	 {P. W. O'Hearn and A. J. Power and M. Takeyama and
                  R. D. Tennent},
  Booktitle =	 {Mathematical Foundations of Programming Semantics,
                  Eleventh Conference},
  Title =	 {Syntactic control of interference revisited},
  Year =	 1995
}

@InProceedings{ohearn:2001:local-alter,
  Author =	 {Peter O'Hearn and John Reynolds and Homngseok Yang},
  Booktitle =	 {CSL, LNCS 2142},
  Publisher =	 sv,
  Title =	 {Local reasoning abour Programs that Alter Data
                  Structures},
  Year =	 2001
}

@InProceedings{palsberg:2004:visitor-programming,
  Address =	 {Venice, Italy},
  Author =	 {Jens Palsberg and J. Van Drunen},
  Booktitle =	 fool,
  Title =	 {Visitor-oriented programming},
  Year =	 2004
}

@InProceedings{papiACPE2008,
  author =	 {Matthew M. Papi and Mahmood Ali and Correa Jr.,
                  Telmo Luis and Jeff H. Perkins and Michael D. Ernst},
  title =	 {Practical pluggable types for {Java}},
  booktitle =	 {ISSTA2008},
  pages =	 {201--212},
  address =	 {Seattle, WA, USA},
  month =	 {July~22--24,},
  year =	 2008
}

@Book{pareto:1897:cours-d-economie-politique,
  Author =	 {Vilfredo Pareto},
  Publisher =	 {Rouge, Lausanne et Paris},
  Title =	 {Cours D'Economie Politique},
  Year =	 1897
}

@InProceedings{pechtchanski:2002:immutability,
  Abstract =	 {A location is said to be immutable if its value and
                  the values of selected locations reachable from it
                  are guaranteed to remain unchanged during a
                  specified time interval. We introduce a framework
                  for immutability specification, and discuss its
                  application to code optimization. Compared to a
                  final declaration, an immutability assertion in our
                  framework can express a richer set of immutability
                  properties along three dimensions --- lifetime,
                  reachability and context. We present a framework for
                  processing and verifying immutability annotations in
                  Java, as well as extending optimizations so as to
                  exploit immutability information. Preliminary
                  experimental results show that a significant number
                  (82\%) of read accesses could potentially be
                  classified as immutable in our framework. Further,
                  use of immutability information yields substantial
                  reductions (33\% to 99\%) in the number of dynamic
                  read accesses, and also measurable speedups in the
                  range of 5\% to 10\% for certain benchmark
                  programs.},
  Address =	 JavaGrande2002addr,
  Author =	 {Igor Pechtchanski and Vivek Sarkar},
  Booktitle =	 JavaGrande2002,
  Month =	 JavaGrande2002date,
  Pages =	 {202--211},
  Title =	 {Immutability specification and its applications},
  Year =	 2002
}

@Article{perlis:1982:epigrams,
  Author =	 {Alan Perlis},
  Journal =	 sigplan,
  Month =	 sep,
  Number =	 9,
  Title =	 {Epigrams on programming},
  Volume =	 17,
  Year =	 1982
}

@TechReport{permandla:2005:safejvm,
  Author =	 {Pratibha Permandla and Chandrasekhar Boyapati},
  Institution =	 {University of Michigan},
  Title =	 {A Type System for Preventing Data Races and
                  Deadlocks in the {J}ava {V}irtual {M}achine
                  Language},
  Year =	 2005
}

@InProceedings{pierce:1998:local,
  Address =	 {San Diego, CA},
  Author =	 {Benjamin C. Pierce and David N. Turner},
  Booktitle =	 popl,
  Pages =	 {252--265},
  Title =	 {Local Type Inference},
  Url =		 {citeseer.nj.nec.com/pierce98local.html},
  Year =	 1998,
  Bdsk-Url-1 =	 {citeseer.nj.nec.com/pierce98local.html}
}

@InProceedings{poetzsch-heffter:2007:inferring-ownership-for-boxes,
  author =	 {Arnd Poetzsch-Heffter and Kathrin Geilmann and Jan
                  Sch\"{a}fer},
  title =	 {Inferring Ownership Types for Encapsulated
                  Object-Oriented Program Components},
  booktitle =	 ecoop,
  pages =	 {120--144},
  year =	 2007,
  publisher =	 sv
}

@InProceedings{potanin:2002:checking-ownership-and-confinement,
  Address =	 {Malaga, Spain},
  Author =	 {Alex Potanin and James Noble},
  Booktitle =	 ftfjp,
  Month =	 {June},
  Publisher =	 sv,
  Title =	 {Checking ownership and confinement},
  Year =	 2002
}

@TechReport{potanin:2002:honours-report,
  Address =	 {\url{http://www.mcs.vuw.ac.nz/comp/Publications/}},
  Author =	 {Alex Potanin},
  Institution =	 {School of Matematical and Computing Sciences,
                  Victoria University of Wellington},
  Key =		 {CS-TR-02-28},
  Month =	 {November},
  Number =	 {02/28},
  Title =	 {The Fox - A Tool for Java Object Graph Analysis},
  Year =	 2002
}

@TechReport{potanin:2003:acm-grand-finals,
  Address =	 {\url{http://www.mcs.vuw.ac.nz/comp/Publications/}},
  Author =	 {Alex Potanin},
  Institution =	 {School of Matematical and Compuring Sciences,
                  Victoria University of Wellington},
  Key =		 {CS-TR-03-6},
  Month =	 {May},
  Number =	 {03/6},
  Title =	 {A Tool for Ownership and Confinement Analysis of the
                  Java Object Graph},
  Year =	 2003
}

@TechReport{potanin:2003:fox-tr,
  Author =	 {Alex Potanin and James Noble and Robert Biddle},
  Institution =	 {School of Mathematical and Computing Sciences,
                  Victoria University of Wellington},
  Number =	 {CS-TR-03/15},
  Title =	 {The Fox --- A Tool for Object Graph Analysis},
  Year =	 2003
}

@InProceedings{potanin:2004:aswec,
  Author =	 {Alex Potanin and James Noble and Robert Biddle},
  Booktitle =	 {Australian Software Engineering Conference (ASWEC)},
  Title =	 {Snapshot Query-Based Debugging},
  Year =	 2004
}

@Article{potanin:2004:ccpe,
  Author =	 {Alex Potanin and James Noble and Robert Biddle},
  Journal =	 {Concurrency and Computation: Practice and
                  Experience},
  Number =	 7,
  Pages =	 {671--687},
  Title =	 {Checking Ownership and Confinement},
  Volume =	 16,
  Year =	 2004
}

@InProceedings{potanin:2004:fool,
  Address =	 {Venice, Italy},
  Author =	 {Alex Potanin and James Noble and Dave Clarke and
                  Robert Biddle},
  Booktitle =	 fool,
  Month =	 jan,
  Title =	 {{F}eatherweight {G}eneric {C}onfinement},
  Year =	 2004
}

@InProceedings{potanin:2004:ftfjp,
  Address =	 {Oslo, Norway},
  Author =	 {Alex Potanin and James Noble and Dave Clarke and
                  Robert Biddle},
  Booktitle =	 ftfjp,
  Month =	 jun,
  Publisher =	 sv,
  Title =	 {Defaulting {G}eneric {J}ava to {O}wnership},
  Year =	 2004
}

@Article{potanin:2005:cacm,
  Author =	 {Alex Potanin and James Noble and Marcus Frean and
                  Robert Biddle},
  Journal =	 {Communications of the ACM},
  Month =	 may,
  Title =	 {Scale-free Geometry in Object-Oriented Programs},
  Year =	 2005
}

@InProceedings{potanin:2005:ftfjp,
  Address =	 {Glasgow, Scotland},
  Author =	 {Alex Potanin and James Noble and Dave Clarke and
                  Robert Biddle},
  Booktitle =	 ftfjp,
  Month =	 jul,
  Publisher =	 sv,
  Title =	 {{F}eatherweight {G}eneric {O}wnership},
  Year =	 2005
}

@InProceedings{potanin:2005:scopes,
  Address =	 {San Diego, CA, USA},
  Author =	 {Alex Potanin and James Noble and Tian Zhao and Jan
                  Vitek},
  Booktitle =	 {The 3rd workshop on Java Technologies for Real-time
                  and Embedded Systems},
  Title =	 {A High Integrity Profile for Memory Safe Programming
                  in Real-time {J}ava},
  Year =	 2005
}

@TechReport{potanin:2006:fgotr,
  Author =	 {Alex Potanin and James Noble and Dave Clarke and
                  Robert Biddle},
  Institution =	 {Victoria University of Wellington},
  Note =	 {\url{http://www.mcs.vuw.ac.nz/~alex/FGOTR.pdf}},
  Title =	 {Featherweight Generic Ownership},
  Year =	 2006
}

@InProceedings{potanin:2006:go,
  Address =	 {Portland, OR, USA},
  Author =	 {Alex Potanin and James Noble and Dave Clarke and
                  Robert Biddle},
  Booktitle =	 oopsla,
  Publisher =	 acm,
  Title =	 {Generic Ownership},
  Year =	 2006
}

@Article{potanin:2006:jfp,
  Author =	 {Alex Potanin and James Noble and Dave Clarke and
                  Robert Biddle},
  Journal =	 {{J}ournal of {F}unctional {P}rogramming},
  Month =	 sep,
  Number =	 6,
  Pages =	 {793--811},
  Title =	 {{F}eatherweight {G}eneric {C}onfinement},
  Volume =	 16,
  Year =	 2006
}

@PhDThesis{potanin:2007:phd,
  Author =	 {Alex Potanin},
  School =	 {SMSCS, Victoria University of Wellington},
  Title =	 {Generic Ownership},
  Year =	 2007
}

@Misc{potanin:www:fox,
  Author =	 {Alex Potanin},
  Howpublished = {Available at:
                  \url{http://www.mcs.vuw.ac.nz/~alex/fox/}},
  Title =	 {{The Fox} project web page},
  Year =	 2003
}

@Misc{potanin:www:ogj,
  Author =	 {Alex Potanin},
  Howpublished = {\url{http://www.mcs.vuw.ac.nz/~alex/ogj/}},
  Title =	 {{O}wnership {G}eneric {J}ava {D}ownload},
  Year =	 2005
}

@Misc{potanin:www:oigj,
  author =	 {Alex Potanin},
  title =	 {{O}wnership and {I}mmutability {G}eneric {J}ava
                  {(OIGJ)}},
  howpublished =
                  {\url{http://homepages.ecs.vuw.ac.nz/~alex/oigj/index.shtml}},
  year =	 2009
}

@InProceedings{potter:1998:insandouts,
  Address =	 {Adelaide, Australia},
  Author =	 {John Potter and James Noble and David Clarke},
  Booktitle =	 {Australian Software Engineering Conference},
  Month =	 {November},
  Publisher =	 {IEEE Press},
  Title =	 {The Ins and Outs of Objects},
  Year =	 1998
}

@InProceedings{potter:1998:the-ins-and-outs-of-objects,
  Author =	 {John Potter and James Noble and David Clarke},
  Booktitle =	 {Proceedings of European Conference for
                  Object-Oriented Programming},
  Publisher =	 sv,
  Title =	 {The ins and outs of objects},
  Year =	 1998
}

@Misc{pugh:www:find-bugs,
  Author =	 {Bill Pugh},
  Howpublished = {\url{http://www.cs.umd.edu/~pugh/java/bugs/}},
  Title =	 {{Find Bugs --- A Bug Pattern Detector for Java}},
  Year =	 2007
}

@inproceedings{qi:2009:popl,
  author    = {Xin Qi and
               Andrew C. Myers},
  title     = {Masked types for sound object initialization},
  booktitle = popl,
  pages     = {53-65},
  editor    = {Zhong Shao and
               Benjamin C. Pierce},
  publisher = acm,
  year      = {2009},
}

@InProceedings{reichenbach:2012:pql,
  author =	 {Christoph Reichenbach and Yannis Smaragdakis and
                  Neil Immerman},
  title =	 {{PQL}: A Purely-Declarative {J}ava Extension for
                  Parallel Programming},
  booktitle =	 ecoop,
  pages =	 {53--78},
  year =	 2012,
  editor =	 {James Noble},
  volume =	 7313,
  series =	 lncs,
  publisher =	 sv
}

@InProceedings{reynolds:1978:syntactic,
  Author =	 {John C. Reynolds},
  Booktitle =	 {5th {ACM} Symposium on Principles of Programming
                  Languages},
  Month =	 jan,
  Title =	 {Syntactic Control of Interference},
  Year =	 1978
}

@InProceedings{reynolds:1983:param,
  Author =	 {John C Reynolds},
  Booktitle =	 {Information Processing '83},
  Pages =	 {513--523},
  Publisher =	 {North-Holland},
  Title =	 {Types, Abstraction, and Parametric Polymorphism},
  Year =	 1983
}

@InProceedings{reynolds:1989:syntactic,
  Author =	 {John C. Reynolds},
  Booktitle =	 {Automata, Languages, and Programming: 16th
                  International Colloquium},
  Number =	 372,
  Pages =	 {704-722},
  Series =	 {LNCS},
  Title =	 {Syntactic Control of Interference, Part 2},
  Year =	 1989
}

@InProceedings{riecke:1998:privacy,
  Author =	 {Jon G. Riecke and Christopher A. Stone},
  Booktitle =	 fool,
  Title =	 {{P}rivacy via {S}ubsumption},
  Year =	 1998
}

@InProceedings{salcianu:2005:purity,
  Abstract =	 {We present a new purity and side effect analysis for
                  Java programs. A method is pure if it does not
                  mutate any location that exists in the program state
                  right before the invocation of the method.  Our
                  analysis is built on top of a combined pointer and
                  escape analysis, and is able to determine that
                  methods are pure even when the methods mutate the
                  heap, provided they mutate only new objects.  Our
                  analysis provides useful information even for impure
                  methods. In particular, it can recognize read-only
                  parameters (a parameter is read-only if the method
                  does not mutate any objects transitively reachable
                  from the parameter) and safe parameters (a parameter
                  is safe if it is read-only and the method does not
                  create any new externally visible heap paths to
                  objects transitively reachable from the
                  parameter). The analysis can also generate regular
                  expressions that characterize the externally visible
                  heap locations that the method mutates.  We have
                  implemented our analysis and used it to analyze
                  several applications. Our results show that our
                  analysis effectively recognizes a variety of pure
                  methods, including pure methods that allocate and
                  mutate complex auxiliary data structures.},
  Address =	 VMCAI2005addr,
  Author =	 {Alexandru S{\u{a}}lcianu and Martin C. Rinard},
  Authorascii =	 {Alexandru Salcianu},
  Booktitle =	 VMCAI2005,
  Month =	 VMCAI2005date,
  Pages =	 {199--215},
  Title =	 {Purity and side-effect analysis for {Java} programs},
  Year =	 2005
}

@InProceedings{salzman:2005:slate,
  Address =	 {Glasgow, Scotland},
  Author =	 {Lee Salzman and Jonathan Aldrich},
  Booktitle =	 ecoop,
  Pages =	 {312--336},
  Publisher =	 sv,
  Title =	 {Prototypes with Multiple Dispatch: An Expressive and
                  Dynamic Object Model},
  Volume =	 3586,
  Year =	 2005
}

@TechReport{servetto:2012:bijtr,
  author =	 {Marco Servetto and Alex Potanin},
  title =	 {Balloon Immutable Java},
  institution =	 {ECS, VUW},
  year =	 2012,
  number =	 {12-18},
  note =
                  {\url{http://ecs.victoria.ac.nz/Main/TechnicalReportSeries}}
}

@TechReport{servetto:2012:nonulltr,
  author =	 {Marco Servetto and Alex Potanin},
  title =	 {Our Billion Dollar Fix},
  institution =	 {ECS, VUW},
  year =	 2012,
  number =	 {12-19},
  note =
                  {\url{http://ecs.victoria.ac.nz/Main/TechnicalReportSeries}}
}

@Misc{shalizi:www:networks,
  Author =	 {Cosma Shalizi},
  Howpublished =
                  {\url{http://discuss.santafe.edu/dynamics/stories/storyReader\$54}},
  Title =	 {Networks: growth, form, function, crashes},
  Year =	 2002
}

@Article{skalka:2003:confinement,
  Author =	 {Christian Skalka and Scott Smith},
  Journal =	 {Springer International Journal of Information
                  Security},
  Title =	 {Static Use-Based Object Confinement},
  Year =	 2003
}

@InCollection{smith:2003:iwaco,
  Author =	 {Matthew Smith and Sophia Drossopoulou},
  Booktitle =	 iwaco,
  Editor =	 {Dave Clarke},
  Month =	 {July},
  Number =	 {UU-CS-2003-030},
  Pages =	 {15 -- 28},
  Publisher =	 {Utrecht University},
  Title =	 {Cheaper Reasoning with Ownership Types},
  Year =	 2003
}

@Book{stroustrup:1986:cplusplus,
  Author =	 {Bjarne Stroustrup},
  Date-Modified ={2008-08-22 09:29:39 +1200},
  Publisher =	 aw,
  Title =	 {The {C}++ Programming Language},
  Year =	 1986
}

@Book{stroustrup:1994:de,
  Author =	 {Bjarne Stroustrup},
  Publisher =	 aw,
  Title =	 {The Design and Evolution of {C++}},
  Year =	 1994
}

@Misc{stroustrup:2006:cpp0x,
  Author =	 {Bjarne Stroustrup},
  Howpublished = {\url{http://www.artima.com/cppsource/cpp0xP.html}},
  Month =	 jan,
  Note =	 {Online article on Artima Developer.},
  Title =	 {A Brief Look at {C}++0x},
  Year =	 2006
}

@inproceedings{summers:2011:oopsla,
 author = {A. J. Summers and P. M\"uller},
 title = {Freedom Before Commitment - A Lightweight Type System for Object Initialisation},
 booktitle = oopsla,
 year = {2011},
 publisher = acm
}

@Misc{sun:www:generic-arrays-error,
  Author =	 {Sun Microsystems},
  Howpublished =
                  {\url{http://bugs.sun.com/bugdatabase/view_bug.do;:WuuT?bug_id=5105887}},
  Month =	 {September},
  Title =	 {Bug ID 5105887},
  Year =	 2004
}

@Misc{sun:www:jdi,
  Author =	 {Sun Microsystems},
  Howpublished =
                  {\url{http://java.sun.com/j2se/1.4.1/docs/guide/jpda/jdi/index.html}},
  Title =	 {Java Debug interface},
  Year =	 2002
}

@Misc{sun:www:jdk,
  Author =	 {{Sun Microsystems}},
  Howpublished = {Available at: \url{http://java.sun.com/j2se/}},
  Title =	 {{J}ava {D}evelopment {K}it},
  Year =	 2005
}

@Misc{sun:www:jdk12,
  Author =	 {{Sun Microsystems}},
  Howpublished = {\url{http://java.sun.com/j2se/1.2/}},
  Title =	 {Java Development Kit Version 1.2},
  Year =	 2002
}

@Misc{sun:www:jsr14,
  Author =	 {{Sun Microsystems}},
  Howpublished =
                  {\url{http://developer.java.sun.com/developer/earlyAccess/adding_generics/index.html}},
  Title =	 {{JSR14} prototype implementation},
  Year =	 2003
}

@Misc{sun:www:jvmpi,
  Author =	 {{Sun Microsystems}},
  Howpublished =
                  {\url{http://java.sun.com/j2se/1.4.1/docs/guide/jvmpi/}},
  Title =	 {Java Virtual Machine Profiler Interface},
  Year =	 2002
}

@MastersThesis{takano:2007:msc,
  Author =	 {Yoshimi Takano},
  School =	 {ETH Zurich},
  Title =	 {Implementing Uniqueness and Ownership Transfer in
                  the Universe Type System},
  Year =	 2007
}

@Article{talpin:1992:regions,
  Author =	 {J.-P Talpin and P. Jouvelot},
  Journal =	 {Journal of Functional Programming},
  Month =	 {July},
  Number =	 3,
  Pages =	 {245-271},
  Title =	 {Polymorphic type, region, and effect inference},
  Volume =	 2,
  Year =	 1992
}

@MastersThesis{theisen:1999:enhanced-encapsulation,
  Author =	 {Dirk Theisen},
  Month =	 jul,
  School =	 {Computer Science Department III, University of Bonn},
  Title =	 {Enhanced Encapsulation in {OOP} --- A Practical
                  Approach},
  Year =	 1999
}

@Misc{tiobe:www:pls,
  Author =	 {{TIOBE} {S}oftware},
  Howpublished = {\url{http://www.tiobe.com/index.htm?tiobe_index}},
  Month =	 jan,
  Title =	 {{TIOBE} {P}rogramming {C}ommunity {I}ndex for
                  {J}anuary 2008},
  Year =	 2008
}

@InProceedings{tkachuk:2003:side-model,
  Address =	 FSE2003addr,
  Author =	 {Oksana Tkachuk and Matthew B. Dwyer},
  Booktitle =	 FSE2003,
  Month =	 FSE2003date,
  Pages =	 {188--197},
  Title =	 {Adapting side effects analysis for modular program
                  model checking},
  Year =	 2003
}

@Article{tofte:1997:regions,
  Author =	 {Mads Tofte and Jean-Pierre Talpin},
  Journal =	 {Information and Computation},
  Number =	 2,
  Pages =	 {109--176},
  Title =	 {Region-{B}ased {M}emory {M}anagement},
  Volume =	 132,
  Year =	 1997
}

@Article{torgersen:2004:wildcards,
  Author =	 {Mads Torgerson and Erik Ernst and Christian Plesner
                  Hansen and Peter {von der Ah\'e} and Gilad Bracha
                  and Neal Gafter},
  Journal =	 {Journal of Object Technology},
  Month =	 dec,
  Note =	 {Special Issue: {OOPS} track at {SAC} 2004.},
  Number =	 11,
  Pages =	 {97--116},
  Title =	 {Adding Wildcards to the {J}ava Programming Language},
  Volume =	 3,
  Year =	 2004
}

@InProceedings{unkel:2008:stationary-fields,
  Address =	 {New York, NY, USA},
  Author =	 {Christopher Unkel and Monica S. Lam},
  Booktitle =	 popl,
  Issn =	 {0362-1340},
  Issue =	 1,
  Pages =	 {183--195},
  Publisher =	 acm,
  Title =	 {Automatic inference of stationary fields: a
                  generalization of {J}ava's final fields},
  Volume =	 43,
  Year =	 2008
}

@InProceedings{utting:1995:reasoning,
  Author =	 {Mark Utting},
  Booktitle =	 {The Fourth Australasian Refinement Workshop},
  Title =	 {Reasoning about Aliasing},
  Year =	 1995
}

@InProceedings{vakilian:2009:dpj-inference,
  author =	 {Mohsen Vakilian and Danny Dig and Robert Bocchino
                  and Jeffrey Overbey and Vikram Adve and Ralph
                  Johnson},
  title =	 {Inferring Method Effect Summaries for Nested Heap
                  Regions},
  booktitle =	 ase,
  pages =	 {421--432},
  year =	 2009
}

@Article{valverde:2002:scale-free,
  Author =	 {Sergi Valverde and Ramon Ferrer Cancho and Ricard
                  V. Sole},
  Journal =	 {Europhysics Letters},
  Pages =	 {512-517},
  Title =	 {Scale-free networks from optimal design},
  Volume =	 60,
  Year =	 2002
}

@Misc{visualbeans:www:fisheye,
  Author =	 {VisualBeans.Com},
  Howpublished = {Available at:
                  \url{http://www.visualbeans.com/FishEye/}},
  Title =	 {FishEye Bean},
  Year =	 2003
}

@InCollection{vitek:1997:scmos,
  Author =	 {Jan Vitek and Manuel Serrano and Dimitri Thanos},
  Booktitle =	 {Mobile Object Systems: Towards the Programmable
                  Internet.},
  Editor =	 {J. Vitek and C. Tschudin},
  Month =	 apr,
  Publisher =	 sv,
  Series =	 {LNCS 1222},
  Title =	 {Security and Communication in Mobile Object Systems},
  Year =	 1997
}

@Article{vitek:2001:confined-types,
  Author =	 {Jan Vitek and Boris Bokowski},
  Journal =	 {{S}oftware {P}ractice \& {E}xperience},
  Month =	 may,
  Number =	 6,
  Pages =	 {507--532},
  Title =	 {{C}onfined {T}ypes in {J}ava},
  Volume =	 31,
  Year =	 2001
}

@Unpublished{wadler:1998:expression-problem,
  Author =	 {Philip Wadler},
  Month =	 nov,
  Note =	 {Discussion on the Java-Genericity mailing list (see
                  12 November 1998 post)},
  Title =	 {The Expression Problem},
  Year =	 1998
}

@InProceedings{wadler:2003:call-dual,
  author =	 {Philip Wadler},
  title =	 {Call-by-value is dual to call-by-name},
  booktitle =	 {International Conference on Functional Programming
                  ({ICFP})},
  year =	 2003
}

@InCollection{wake:1995:account-number,
  Author =	 {William C. Wake},
  Booktitle =	 {Pattern Languages of Program Design},
  Publisher =	 aw,
  Title =	 {Account Number: A Pattern},
  Volume =	 1,
  Year =	 1995
}

@InBook{walker:2005:substructural,
  author =	 {David Walker},
  title =	 {Advanced Topics in Types and Programming Languages
                  (Edited by B. Pierce)},
  chapter =	 {Substructural Type Systems},
  publisher =	 {MIT Press},
  year =	 2005
}

@PhDThesis{wills:1992:formal,
  Author =	 {Alan Cameron Wills},
  School =	 {University of Manchester},
  Title =	 {Formal Methods applied to Object-Oriented
                  Programming},
  Year =	 1992
}

@InProceedings{wirfs-brock:1989:ood-rdd,
  Author =	 {R. Wirfs-Brock and B. Wilkerson},
  Booktitle =	 oopsla,
  Title =	 {Object-oriented design: a responsibility-driven
                  approach},
  Year =	 1989
}

@Article{wright:1994:soundness,
  Author =	 {A. K. Wright and M. Felleisen},
  Journal =	 {Information and Computation},
  Month =	 nov,
  Number =	 1,
  Pages =	 {38--94},
  Title =	 {A syntactic approach to type soundness},
  Volume =	 115,
  Year =	 1994
}

@PhDThesis{wrigstad:2006:phd,
  AUTHOR =	 {Tobias Wrigstad},
  TITLE =	 {Ownership-Based Alias Management},
  SCHOOL =	 {Royal Institute of Technology, Sweden},
  YEAR =	 2006,
  month =	 {May},
}

@Article{wrigstad:2007:existential-owners,
  Author =	 {Tobias Wrigstad and Dave Clarke},
  Journal =	 {Journal of Object Technology},
  Month =	 {May},
  Title =	 {Existential Owners for Ownership Types},
  Year =	 2007
}

@Misc{www:1997:secure-internet-programming-group,
  Author =	 {{Secure Internet Programming Group}},
  Howpublished =
                  {\url{http://www.cs.princeton.edu/sip/news/april29.html}},
  Title =	 {HotJava 1.0 Signature Bug},
  Year =	 1997
}

@InProceedings{xie:2006:testing,
  Address =	 ECOOP2006addr,
  Author =	 {Tao Xie},
  Booktitle =	 ECOOP2006,
  Month =	 ECOOP2006date,
  Pages =	 {380--403},
  Title =	 {Augmenting automatically generated unit-test suites
                  with regression oracle checking},
  Year =	 2006
}

@InCollection{zeller:2001:visual,
  Author =	 {Thomas Zimmermann and Andreas Zeller},
  Booktitle =	 {Software Visualization},
  Month =	 {May},
  Pages =	 {191-204},
  Publisher =	 sv,
  Series =	 {Lecture Notes in Computer Science},
  Title =	 {Visualizing memory graphs},
  Volume =	 {{LNCS} 2269},
  Year =	 2001
}

@InProceedings{zeller:2002:isolating-cause-effect-chains,
  Author =	 {Andreas Zeller},
  Booktitle =	 {ACM SIGSOFT 10th International Symposium on the
                  Foundations of Software Engineering (FSE-10)},
  Title =	 {Isolating cause-effect chains from computer
                  programs},
  Year =	 2002
}

@Misc{zeller:www:ddd,
  Author =	 {Andreas Zeller},
  Howpublished = {\url{http://www.gnu.org/software/ddd/}},
  Title =	 {Data Display Debugger}
}

@Misc{zeller:www:delta-debugging,
  Author =	 {Andreas Zeller},
  Howpublished = {\url{http://www.st.cs.uni-sb.de/dd/}},
  Title =	 {Delta Debugging},
  Year =	 2003
}

@InProceedings{zenger:2005:expression-problem,
  Address =	 {San Diego, USA},
  Author =	 {Matthias Zenger and Martin Odersky},
  Booktitle =	 fool,
  Month =	 oct,
  Note =	 {Also available as Technical Report IC/2004/109,
                  EPFL, Switzerland, December 2004.},
  Title =	 {Independently Extensible Solutions to the Expression
                  Problem},
  Year =	 2005
}

@InProceedings{zhao:2003:cfj,
  Author =	 {Tian Zhao and Jens Palsberg and Jan Vitek},
  Booktitle =	 oopsla,
  Month =	 oct,
  Title =	 {Lightweight Confinement for {F}eatherweight {J}ava},
  Year =	 2003
}

@Article{zhao:2006:cfj,
  Author =	 {Tian Zhao and Jens Palsberg and Jan Vitek},
  Journal =	 {{J}ournal of {F}unctional {P}rogramming},
  Number =	 1,
  Pages =	 {83--128},
  Title =	 {{T}ype-{B}ased {C}onfinement},
  Volume =	 16,
  Year =	 2006
}

@InProceedings{zibin:2007:immutability,
  Author =	 {Yoav Zibin and Alex Potanin and Shay Artzi and Adam
                  Kiezun and Michael D. Ernst },
  Booktitle =	 {Foundations of Software Engineering},
  Title =	 {Object and Reference Immutability using {J}ava
                  Generics},
  Year =	 2007
}

@InProceedings{zibin:2010:oigj,
  author =	 {Yoav Zibin and Alex Potanin and Paley Li and Mahmood
                  Ali and Michael D. Ernst},
  title =	 {Ownership and Immutability in Generic Java},
  booktitle =	 oopsla,
  pages =	 {598--617},
  year =	 2010,
  publisher =	 acm
}

@Book{zipf:1935:psycho-biology-of-languages,
  Author =	 {George Kingsley Zipf},
  Publisher =	 {Houghton-Mifflin},
  Title =	 {Psycho-Biology of Languages},
  Year =	 1935
}

@Book{zipf:1965:human-behavior,
  Author =	 {George Kingsley Zipf},
  Note =	 {Facsimile of 1949 edition},
  Publisher =	 {New York : Hafner},
  Title =	 {Human behavior and the principle of least effort :
                  an introduction to human ecology},
  Year =	 1965
}
